Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
网络学习营
【网络编程学习】+ A Byte of China + 百度语音合成
发布于 2018-08-16 01:19:06 浏览:2988
订阅该版
* 本帖最后由 ianhom 于 2018-8-16 01:19 编辑 * 第三周的作业有点多,先完成其中一项,实现板子上输入文字,然后从百度语音合成语音后,再下载到板子上。 硬件:野火RT-1052Mini + ESP8266 ![TIM截图20180815232450.png](/uploads/201808/15/232503pbslco5qb9or8oju.png) 还是先分成两部分来介绍:1、**百度语音侧配置**;2、**RT-Thread侧配置**。 百度语音配置 [百度语音](http://yuyin.baidu.com/)可以实现**语音识别**和**语音合成**,语音识别是**从语音到文字的过程**,语音合成是**从文字到语音的过程**,所以我们此次需要关注的就是语音合成的部分。百度语音是免费试用的,操作起来也很方便,官网首页上就可以直接体验。 ![TIM截图20180815223406.png](/uploads/201808/15/225404pp9p0y8zk9t081t9.png) 1、在[百度语音](http://yuyin.baidu.com/)的首页上,我们能找到开发通道,首先我们需要注册为百度的**开发者**,然后选择**创建应用。** ![TIM截图20180815223449.png](/uploads/201808/15/225405ezyap2cassya6shn.png) ![TIM截图20180815223842.png](/uploads/201808/15/225405awthv9vhvaiecagf.png) 在创建应用的窗口中填入必要信息,点击**创建应用**即可。 ![TIM截图20180815223951.png](/uploads/201808/15/225405hcz66f141lcfxijb.png) 完成创建后,点击应用名称即可看到应用的详情,这里有个**API Key**和**Secret Key**需要记下来,然后我们点击**查看文档**,然后选择**语音合成API**。 ![TIM截图20180815224101.png](/uploads/201808/15/225406rkuuo7tgz7ru03xo.png) ![TIM截图20180815224121.png](/uploads/201808/15/225406g59urzuzjjtvttzv.png) 这篇文档详细介绍了如何通过HTTP来获取语音合成服务,我们通过浏览器就可以实现。首先我们需要通过上述的**API Key**和**Secret Key**来获取**token**。该token用于我们后续的连接。如图所示,复制红框的连接,然后把连接中响应的API Key和Secret Key更换成我们自己应用对应的值,再把修改后的连接**复制到浏览器地址栏**中,即可获得token。**注意,该token只有30天的有效期,30天后需要重新申请token**。 ![TIM截图20180815224232.png](/uploads/201808/15/225406l3prk3rdcjpkrkqe.png) ![TIM截图20180815224508.png](/uploads/201808/15/225407magotycetee9gxze.png) 有了token之后,我们就可以生成语音合成服务的连接了。复制连接,替换红色token部分为我们自己的token字符串,蓝色部分为待转换为语音的文字(url编码,此例中文字为“百度你好”),连接的后面是发音风格等属性。我们将该修改好的连接复制到地址栏,就可以获取到文字对应的mp3格式的音频,播放音频将听到“百度你好”。 ![TIM截图20180815224615.png](/uploads/201808/15/225407rp1lwwr3sa1aw37l.png) 所以至此,我们就找到了一个简单的方式实现文字转语音,即修改语音连接中的待转换字段,即可实现我们预期的效果。 ![TIM截图20180815224857.png](/uploads/201808/15/225407m2iyiytouczar681.png) ---------------------------------------------- 不怎么华丽的分界线 --------------------------------------------------------------- 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文件名,注意中间有空格)![TIM截图20180815232955.png](/uploads/201808/16/004123lqggd7c6g7476upq.png) 总结:1、token的获取方法在此例中没有在板子上实现,感兴趣的小伙伴可以试一下,重点在于字段分析,注意此例中的token,30天后失效。 2、输入中文时遇到一个坑,在securecrt中输入的中文编码可能不同,导致一直获取失败,然后在rtt活动主办方提供的中终端工具putty中使用一切良好。有兴趣的朋友可以继续分析一下中文在这两个工具下的编码差异(主要看工具中的配置),这里耽误了很多时间,一直尝试去进行编码,后来通过换工具解决了,不过中间学到了很多。果然收获最多的不是一帆风顺或捷径,还是挖坑出坑的过程。 音频文件: ![rtt.mp3](/uploads/201808/16/010414q9roo4e9xyy2wmv6.mp3)
查看更多
2
个回答
默认排序
按发布时间排序
armink
2018-08-16
这家伙很懒,什么也没写!
很多终端工具都可以设置编码格式,比如下图的 xshell,要保证终端输入的编码格式与云端解析要求的编码格式一致 [attach]5356[/attach]
ianhom
2018-08-16
这家伙很懒,什么也没写!
>很多终端工具都可以设置编码格式,比如下图的 xshell,要保证终端输入的编码格式与云端解析要求的编码格式 ... --- 恩恩,我也尝试过修改secureCRT的编码,一直没有成功,我要跟大神好好学习,大神带我!:)
撰写答案
登录
注册新账号
关注者
0
被浏览
3k
关于作者
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
组件 lwip v2.0.3 版本使用 netdev网卡的 ping 功能
2
简单两步配置RTT源码阅读环境 vsc+clangd
3
恩智浦[FRDM-MCXN947]初探 之 ADC与DAC
4
LVGL使用字库IC芯片显示中文
5
基于STM32H750和Rt-Thread的CANFD通信实现的记录(一)
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
807
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部