前言
如何利用树莓派能够实现语音识别、语音合成适合小白的入门小设计。
参考文章:
https://blog.csdn.net/weixin_44897649/article/details/103173247?utm_source=app&app_version=4.8.1
1.硬件要求
树莓派3b+运行环境配置好以及sd卡、tf卡等基本器件,声音输出可以选择耳机,usb声卡(免驱动)+普通麦克风(内部没有声卡3.5mm)或者选择usb麦克风内置声卡(免驱动),我们选择的是后者。
2.麦克风检测
参考文章:https://blog.csdn.net/weixin_43892158/article/details/113787727
2.1细节注意
网上很多提到对树莓派对于默认声卡的修改,其实这是有前提的,如果你能够实现通过麦克风声音的输入与树莓派声音的输出,没有必要进行默认声卡的修改。
其次如果感觉耳机输出声音太小可通过以下,进行调节
pi@raspberrypi:~ $ alsamixer
3.python-sdk模块
首先完成账号的申请与产品的创建,要注意语音识别、语音合成是不同的产品,要分别进行创建。其次安装该模块有两种方式安装,以语音识别库下载为例代码如下
示例1:
首先官网下载到树莓派pi文件夹下,先解压后安装
unzip aip-python-sdk-4.15.4.zip
sudo pip install baidu-aip
示例2:
直接终端运行
pip install baidu-aip
4.代码部分改进
参考原来的文章实现相对比较智能化的在线语音合成,实现直接将输入的文本合成音频直接输出。
#_*_ coding:UTF-8 _*_
# @author: zdl
# 百度云语音合成Demo,实现对本地文本的语音合成。
# 需安装好python-SDK,待合成文本不超过1024个字节
# 合成成功返回audio.mp3 否则返回错误代码
# 导入AipSpeech AipSpeech是语音识别的Python SDK客户端
import playsound
from aip import AipSpeech
import os
''' 你的APPID AK SK 参数在申请的百度云语音(合成)服务的控制台查看'''
APP_ID = 'xxx'
API_KEY = 'xxx'
SECRET_KEY = 'xxx'
# 新建一个AipSpeech
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 将本地文件进行语音合成
demo = raw_input('请输入你要合成的文字:')
print('输入的文字为:%s' %demo)
def tts(demo):
if len(demo) != 0:
word = demo
result = client.synthesis(word,'zh',1, {
'vol': 5,'per':0,
})
# 合成正确返回audio.mp3,错误则返回dict
if not isinstance(result, dict):
with open('audio.mp3', 'wb') as f:
f.write(result)
print ('tts successful')
os.system("mplayer /home/pi/audio.mp3")
# main
if __name__ == '__main__':
tts(demo)
总结
第一次写博客,实践过程中有小伙伴们的支持,老师的提议,很多大神的帮助,少走了很多弯路,希望这篇文章同样可以帮到大家,不足的地方希望大家批评指正。