用python完成文本转音频(tts)

Posted by 甘家城 on 2018-02-07 Viewed times

用 python完成tts的话一般会用pyttsx库,但一般pip下载的话会有各种报错。所以这里找了实际试了可用的github上几个改编的库。

对于python3.x版本,选择 https://github.com/jpercent/pyttsx ,来完成tts,但python3版本的目前还没发现有保存为音频文件的,只能直接发出声音。代码如下:

import pyttsx
engine = pyttsx.init()
engine.say("你好")
engine.runAndWait()

对于python2.7版本,可以选择https://github.com/hick/pyttsx来完成tts,他可以让文本转为声音并且可以下载保存为wav文件。

完成tts还需要pywin32,可以到这里下载对应版本,https://github.com/mhammond/pywin32/releases,试过目前没错。

这里使用的环境是在windows8,python2.7版本。如果要读中文的话可以在 控制面板–轻松使用–语音识别–文本到语音转换,看看有没有中文语音库。

当然还需要准备一个文本文件,在windows,首先把文本转为utf-8格式,具体做法是用记事本打开txt文件,文件–另存为–在编码里选utf-8,保存;

前戏完成,然后运行下面代码:

#coding:utf-8
import pyttsx

#读取txt文件(txt必须为utf-8编码)
s=open("filename.txt").read()

#解码为unicode
c=s.decode("utf-8")

#初始化tts
engine = pyttsx.init()

#直接发出声音
#engine.say(u"你好")

#保存为文件
engine.rec(c,"filename.wav")

版权声明:本文为原创文章,转载请注明出处和作者,不得用于商业用途,请遵守 CC BY-NC-SA 4.0协议。

支付宝打赏 微信打赏

赞赏一下