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,否则会出现缓存现象,得不到我们的效果