linux环境下将文字转语音,代码已开源(没几行...) 模拟tts的功能。原理还是借用了baidu翻译的功能,不保证能用到什么时候...
1.ubuntu安装sox(音乐播放器)
$ sudo apt-get install sox
sox添加mp3格式支持
$ sudo apt-get install libsox-fmt-mp3
2.下载代码
源码在此 http://git.oschina.net/sqp/codes/o9x1d6whztg2i3aneyq8r
python 文字转语音并播放 (linux需安装sox) 用法:python tts.py "来打我吖" 3
############代码############
#!/usr/bin/python
# -*- coding: UTF-8 -*-
__author__ = 'SQP'
def tts(str):
try:
import requests
except:
print u"请下载python-requests模块后使用..."
exit(-1)
import urllib
s = requests.Session()
s.get("http://tts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=" + urllib.quote(str))
res = s.get("http://tts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=" + urllib.quote(str)).content
f = open("tts-temp.mp3", "w")
f.write(res)
f.close()
def say():
import os
os.system("play tts-temp.mp3")
def over():
import os
os.system("rm tts-temp.mp3")
if __name__ == "__main__":
import sys, locale
length = len(sys.argv)
if length<2:
print u"请输入要转换的文字"
exit(-1)
str = sys.argv[1]
times = 1
try:
if length>2:
times = int(sys.argv[2])
except:
print u"第二个参数为朗读次数,请输入数字"
tts(str)
for i in range(0,times):
say()
over()
############代码结束############
复制代码到 ~/tts
3.运行
$ python ~/tts/tts.py "你好"
# 效果:女声读你好
or
$ python ~/tts/tts.py "你好啊" 5
# 效果:女声读你好5遍
打完收工。