Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
网络学习营
【网络编程学习】+ A Byte of China + 百度语音合成
发布于 2018-08-16 01:19:06 浏览:3100
订阅该版
* 本帖最后由 ianhom 于 2018-8-16 01:19 编辑 * 第三周的作业有点多,先完成其中一项,实现板子上输入文字,然后从百度语音合成语音后,再下载到板子上。 硬件:野火RT-1052Mini + ESP8266  还是先分成两部分来介绍:1、**百度语音侧配置**;2、**RT-Thread侧配置**。 百度语音配置 [百度语音](http://yuyin.baidu.com/)可以实现**语音识别**和**语音合成**,语音识别是**从语音到文字的过程**,语音合成是**从文字到语音的过程**,所以我们此次需要关注的就是语音合成的部分。百度语音是免费试用的,操作起来也很方便,官网首页上就可以直接体验。  1、在[百度语音](http://yuyin.baidu.com/)的首页上,我们能找到开发通道,首先我们需要注册为百度的**开发者**,然后选择**创建应用。**   在创建应用的窗口中填入必要信息,点击**创建应用**即可。  完成创建后,点击应用名称即可看到应用的详情,这里有个**API Key**和**Secret Key**需要记下来,然后我们点击**查看文档**,然后选择**语音合成API**。   这篇文档详细介绍了如何通过HTTP来获取语音合成服务,我们通过浏览器就可以实现。首先我们需要通过上述的**API Key**和**Secret Key**来获取**token**。该token用于我们后续的连接。如图所示,复制红框的连接,然后把连接中响应的API Key和Secret Key更换成我们自己应用对应的值,再把修改后的连接**复制到浏览器地址栏**中,即可获得token。**注意,该token只有30天的有效期,30天后需要重新申请token**。   有了token之后,我们就可以生成语音合成服务的连接了。复制连接,替换红色token部分为我们自己的token字符串,蓝色部分为待转换为语音的文字(url编码,此例中文字为“百度你好”),连接的后面是发音风格等属性。我们将该修改好的连接复制到地址栏,就可以获取到文字对应的mp3格式的音频,播放音频将听到“百度你好”。  所以至此,我们就找到了一个简单的方式实现文字转语音,即修改语音连接中的待转换字段,即可实现我们预期的效果。  ---------------------------------------------- 不怎么华丽的分界线 --------------------------------------------------------------- RT-Thread侧配置其实有了前一周的学习经验,通过[8266从网络获取文件](https://club.rt-thread.org/ask/question/7711.html)这个例子稍作修改即可,在webclient_file.c增加的代码如下: ```int speak(int argc, char** argv) { char url[512] = {'\0'}; char fil[32] = {'\0'}; if (argc != 3) { rt_kprintf("speak words filename
"); return 0; } /* The first part of the voice link */ char *urlhd = "http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=24.13dedf67809de4c8caa48ba16f10c4e2.2592000.1536897823.282335-11665310&tex="; /* The last part of the voice link */ char *urltl = "&vol=9&per=0&spd=5&pit=5&aue=3"; rt_kprintf("%s
",argv[1]); /* Complete the link */ strcat(url,urlhd); strcat(url,argv[1]); /* What we want to speak */ strcat(url,urltl); char *filhd = "/"; /* Path */ char *filtl = ".mp3"; /* File type */ /* Complete the file name */ strcat(fil,filhd); strcat(fil,argv[2]); strcat(fil,filtl); /* Get the voice back */ webclient_get_file(url, fil); return 0; } MSH_CMD_EXPORT(speak, speak somthing by rtt);``` 运行效果 给板子上电,系统正常启动,输入**speak 中国物联网操作系统 rtt。**(“speak”是命令,“中国物联网操作系统”是待合成的文字,“rtt”是mp3文件名,注意中间有空格) 总结:1、token的获取方法在此例中没有在板子上实现,感兴趣的小伙伴可以试一下,重点在于字段分析,注意此例中的token,30天后失效。 2、输入中文时遇到一个坑,在securecrt中输入的中文编码可能不同,导致一直获取失败,然后在rtt活动主办方提供的中终端工具putty中使用一切良好。有兴趣的朋友可以继续分析一下中文在这两个工具下的编码差异(主要看工具中的配置),这里耽误了很多时间,一直尝试去进行编码,后来通过换工具解决了,不过中间学到了很多。果然收获最多的不是一帆风顺或捷径,还是挖坑出坑的过程。 音频文件: 
查看更多
2
个回答
默认排序
按发布时间排序
armink
2018-08-16
这家伙很懒,什么也没写!
很多终端工具都可以设置编码格式,比如下图的 xshell,要保证终端输入的编码格式与云端解析要求的编码格式一致 [attach]5356[/attach]
ianhom
2018-08-16
这家伙很懒,什么也没写!
>很多终端工具都可以设置编码格式,比如下图的 xshell,要保证终端输入的编码格式与云端解析要求的编码格式 ... --- 恩恩,我也尝试过修改secureCRT的编码,一直没有成功,我要跟大神好好学习,大神带我!:)
撰写答案
登录
注册新账号
关注者
0
被浏览
3.1k
关于作者
ianhom
这家伙很懒,什么也没写!
提问
17
回答
16
被采纳
0
关注TA
发私信
相关问题
1
【LWIP学习营】第一关开发环境搭建
2
LWIP学习营第一周入门移植问题汇总贴
3
【LWIP学习营】f407+lan8720A小结
4
【LwIP学习营】【第一周】仅零散记录,无主题
5
【LWIP学习营】正点原子探索者F407+LAN8720第一周小结
6
【LwIP学习营】【第一周】网络通信基础及实现TCP 聊天客户端
7
【LwIP学习营】【第一周】LWIP移植
8
【LwIP学习营】【第一周】LWIP移植
9
【LwIP学习营】【第一周】开发板适配
10
【LwIP学习营】【第一周】环境搭建和配置验证
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【面向零基础】基于星火1号开发板从头学习基于RT-Thread的嵌入式开发 第一讲
2
新版OneNet的星火1号开发板例程适配(下)
3
基于RT-Thread的STM32F4开发第六讲——PWM输出(CH1和CH1N)
4
RT-Thread 携手 Copilot:智能代码审查,加速开源协作
5
重磅预售!RT-Trace调试工具
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
FAL
RTC
rt-smart
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
ota在线升级
BSP
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
编译报错
flashDB
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
821
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
Pai同学
8
篇文章
10
次点赞
Rick98
3
篇文章
10
次点赞
RTT_逍遥
2
篇文章
10
次点赞
加缪
1
篇文章
2
次点赞
河南理工大学恁带劲儿
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部