一.技术原理 SpeechRecognition(录音)--> 百度语音(Speech-to-Text语音转文本)--> 图灵机器人(语义分析及应答)--> 百度语音(Text-to-Speech文本转语音)--> PyAudio(音频播放) SpeechRecogintion是 Python 的一个语音识别框架,已经对接了如谷歌和微软的 STT (语音转文本)服务。本课例的语音识别及合成用的是百度的开放服务,所以只是需要 SpeechRecogintion 的录音功能。它可以检测语音中的停顿自动终止录音并保存。安装SpeechRecognition : pip installSpeechRecognition 二.环境配置 虚谷号运行完整的Linux系统,连好USB声卡后,打开虚谷号的音量控制后会发现有三个声卡。 1、打开音量控制,在配置项里面只保留USB声卡,把其他设备都关闭。 2、安装IDEL sudoapt-get install idle3 IDLE是开发python 程序的基本IDE(集成开发环境),具备基本的IDE的功能,是非商业Python开发的不错的选择。运行上面代码后安装了Python3.0的集成开发环境,相对于虚谷号预装的jupyter开发环境,IDLE运行占用资源少。 3、升级pip到19.0.3 pip install--upgrade pip pip 是 Python 包管理工具,后期的包安装用到pip,以上代码是升级到最新版。 4、安装PyAudio Linux 系统下可以直接使用系统自带的包管理器安装 PyAudio (如 Ubuntu 和 Raspbian 系统的 apt-get),可以使用 pip 命令安装,不过需要提前装好编译用的依赖portaudio19, Sudoapt-get install portaudio19-dev pip install–upgrade pyaudio 5、语音识别代码 创建应用:: 百度语音是 百度云AI 开放平台提供的支持语音识别和语音合成的服务,注册以后就可以直接访问它的 REST API 了,并且有向普通用户提供免费的调用额度。 注册成功以后,进入语音服务的 控制台创建一个新的应用,记下自己的 AppID、API Key 和 Secret Key。
语音识别代码,百度 AI 有提供面向 Python 的框架 baidu-aip ,这里直接使用该框架。安装: pip install baidu-aip 把代码中的 Key 替换成自己的,将 SpeechRecognition 录制的音频上传至百度语音的服务,返回识别后的文本结果并输出。
6、图灵机器人 图灵机器人是一个提供(一定额度内)免费的智能聊天服务的平台,注册以后就可以创建自己的聊天机器人并接入到项目中。首先进入图灵机器人的 控制台并创建一个新的聊天机器人,记下分配到的 apikey。
在代码中配置为自己的apikey
上传一个聊天内容,获取到回复。再从收到的对象中提取出回复的文本。
7、百度语音(TTS) 百度的文本转语音(TTS)引擎语音效果很好,其中的”spd”设置调节语速,vol调节音量,per选择人物,我们这里选择1号中年男声。在本程序中定义了一个speak函数完成这部分功能。
就是把需要转换成语音的文本内容上传,再将返回的数据保存在本地。 8、PyAudio 播放 本课例中调用系统中的 sox 命令将 MP3 转为 wav 格式,再用 PyAudio 播放。 SoX 是一个强大的跨平台的音频处理工具,Linux 系统可以直接使用包管理器安装: sudo apt-getinstall sox libsox-fmt-mp3
|