树莓派使用ilangbd库进行python进行中文文本转语音
我最初使用pyttsx/ppyttsx3进行文本转语音,但是英文部分可以成功输出音频,但是中文部分输出的音频不对,最后换成ilangbd这个百度的语音库,并且使用python调用shell库来完成。以下是详细的代码
树莓派换成清华源
因为国内网络环境原因,很多资源不能正常下载,所以我就索性换成了清华的源,提高效率
编辑/etc/apt/sources.list文件
sudo vim /etc/apt/sources.list
如果系统中还没有装vim,可以直接按照以下方式安装,可以先不管源,vim在哪个源中下载还都是顺利的
sudo apt-get install vim
打开sources.list文件后,用#将原文注释掉,用以下内容取代
注意/raspbian/rasphian目录,因为资源不是直接在raspbian下的,注意不要少敲一级目录
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
保存后,再编辑/etc/apt/sources.list.d/raspi.list
sudo vim /etc/apt/sources.list.d/raspi.list
同样将原文用#全部注释掉,用以下内容取代
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
最后用以下命令验证一下
sudo apt-get update
安装使用pyttsx库
在树莓派安装pyttsx库的时候,由于镜像系统中自带的pip版本太低不能正常获取,用以下命令进行更新pip和安装pyttsx/pyttsx3
sudo python -m pip install --upgrade pip
sudo python -m pip install pyttsx
我默认使用的是python2.7,如果是用python3以上的话python应该换成python3,pip应该换成pip3
以下是使用pyttsx进行文本转语音
#-*- coding: UTF-8 -*-
2 import sys
3 import pyttsx
4
5 reload(sys)
6 sys.setdefaultencoding("utf-8")
7
8 text = '你好hello'
9 engine = pyttsx.init()
10 engine.say(text)
11 engine.runAndWait()
可是测试过程中“你好”部分不能正常输出,我猜测问题一定是编码问题,但是我的系统Linux默认是utf-8,该文件的类型也是utf-8,文件中的中文编码我也设置了utf-8,所以我也很疑惑。如果谁有好的方法欢迎留言告知。
ilangbd安装及使用
1.安装命令行播放器mpg123
sudo apt-get install mpg123
2.安装百度语音python包
sudo python -m pip install ilangbd
或者
sudo pip install ilangbd
3.直接在命令行使用以下命令(注意是命令行,不是python环境中的命令行)
ilang "你好,world!"
4.在python2.7中使用(据说这个库目前只支持2)
ilang这个命令现在已经跟ls、cat等都属于shell命令了,只需要在python中进行系统shell调用即可,以下是代码
#coding:utf-8
import os
import sys
word = raw_input('输入想输出的音频')
print(word)
reload(sys)
sys.setdefaultcoding("utf-8")
cmd = "ilang "+word
os.system(cmd)
注意编码,注意cmd = "ilang "这句后面一定要有个空格,注意输入的文本中间不要有符号