1.初始教程
1.登录百度云管理中心,点击管理控制台
2.进入后,下拉在已开通服务中选择百度语音
3.点击创建应用,得到以下应用
4.这里也可以查看它的相关技术文档
2.文字合成语音
1.安装使用Python SDK,终端下:
pip install baidu-aip
使用
此时文件中会多出一个mp3结尾的文件,我们把改文字已经转换成语音写入在了该文件中
3.语音转义成文字
参考技术文档说明,这里支持的语音格式文件有:pcm(不压缩)、wav(不压缩,pcm编码)、amr(压缩格式)
我们需要借助第三方工具ffmpeg把任意格式的语音转移成pcm格式
3.1 ffmpeg说明:
下载链接:猛戳此处
下载后解压缩(我把它放在了D盘下),注意可执行的exe文件是在文件的bin目录,配置我们的环境变量
配置后,在终端测试效果:
使用
我们用命令行对这个 auido.mp3 进行pcm格式的转换然后得到 audio.pcm
命令是 : ffmpeg -y -i audio.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 audio.pcm
# 注意这里转化后文件中会搓出一个auido.mp3.pcm格式的文件
相关参数说明:
View Code
4.输入语音实现自动交互
这里需要我们的图灵机器人技术,创建一个机器人
对我们的机器人进行相关设置

4.1 api接口使用
测试:
效果:
现在有文本信息了,我们可以调用上面的文本信息转换成语音,让它实现语音播放
third.py
return get_file_content('auido.mp3')
test.py
执行后,此时文件中会多出一个auido.mp3和一个auido.mp3.pcm文件,文件内容就是机器人对我们的文本回复的内容
5.web录音实现互动问答
5.1 websocket监听
ai.py
index.html
这里我们启动我们的程序,在浏览器输入http://127.0.0.1:9520/,此时在pycharm上就会传回我们的websocket对象以及远程IP地址
我们利用websocket已经实现了前端与后端的交互吗,现在我们需要通过websocket把我们网页上录的语音换到后端去
5.2 recorder.js录音插件
recorder.js是HTML5录音插件,它可以实现在线录音。
部分浏览器还存在兼容性(如ie,Safari)
Chrome47以上以及QQ浏览器需要HTTPS支持
html5 Audio常用属性和函数事件参考链接:
项目构架
在index.html中导入我们的recorder.js
启动程序后,点击开始按钮,后台会接收到一个bytearray类型的字符,这就是我们的声音字节,现在需要我们把它写入文件
修改我们的后台程序
此时重启文件,我们就能把我们的声音录制成一个123.wav格式的文件,这个就是我们录制的声音
5.3 整合以上内容
现在我们需要完成在浏览器输入语音,在线实时和图灵机器人交互的效果,我们把以上代码进行整合
流程:通过浏览器发送语音给后端-->后端将音频文件转成文字发个图灵机器人-->后端再讲图灵回执的文字转成音频文件-->回执的音频文件发送给前端
test.py
third.py
index.html
ai.py -->执行文件
相关说明:这里浏览器很关键,很容易失败,多试几个浏览器,我调试的是谷歌浏览器,需要我们把油猴插件关掉,还需要把静态文件路径加上
执行完后,页面打印台会输出一个audio.mp3文件
5.4 实现自动播放
实现页面自动播放生成的audio.mp3文件
index.html -->直接替换上面html的即可
ok,下来就可以听到声音了
# 补充说明:这里生成的文件名我们给写死了,最好生成动态文件名,可以引入uuid,否则会出现缓存现象,得不到我们的效果
