使用谷歌翻译 TTS API 阅读文本
项目描述
谷歌语音
Google Speech 是一个简单的多平台命令行工具,用于使用 Google Translate TTS(文本转语音)API 读取文本。
另请参阅gTTS,了解类似但可能更先进且维护积极的项目。
特征
- 支持64种不同的语言
- 可以阅读没有长度限制的文本
- 可以从标准输入读取文本
- 在播放当前句子的同时自动预下载下一个句子,以避免句子之间的长时间停顿
- 自动将下载的数据存储在本地缓存中
- 可以在播放音频时应用任何SoX 效果
安装
Google Speech 需要Python >= 3.4。
来自 PyPI(使用 PIP)
- 如果您还没有它,请为 Python 3安装 pip
- 安装谷歌语音:
pip3 install google_speech - 安装SoX,支持 MP3。在 Ubuntu 和其他 Debian 衍生产品上:
sudo apt-get install sox libsox-fmt-mp3. Windows 用户可以在 SoX 网站上下载二进制文件,安装后还需要将libmad DLL复制到安装 SoX 的目录中,并将该目录添加到 PATH 环境变量中。
从源头
- 如果您还没有,请为 Python 3安装 setuptools
- 克隆此存储库:
git clone https://github.com/desbma/GoogleSpeech - 安装谷歌语音:
python3 setup.py install - 安装SoX,支持 MP3。在 Ubuntu 和其他 Debian 衍生产品上:
sudo apt-get install sox libsox-fmt-mp3. Windows 用户可以在 SoX 网站上下载二进制文件,安装后还需要将libmad DLL复制到安装 SoX 的目录中,并将该目录添加到 PATH 环境变量中。
命令行使用
运行google_speech -h以获取完整的命令行参考。
例子
-
飞机失速报警:
google_speech -l en stall -e delay 0.5 overdrive 20 repeat 5 speed 0.9 gain -5 -
女机器人声音(来自这里的想法):
google_speech -l en "Hello, I am a stupid robot voice" -e speed 0.9 overdrive 10 echo 0.8 0.7 6 0.7 echo 0.8 0.7 10 0.7 echo 0.8 0.7 12 0.7 echo 0.8 0.88 12 0.7 echo 0.8 0.88 30 0.7 echo 0.6 0.6 60 0.7 -
保存到 MP3 文件:
google_speech -l en -o hello.mp3 "Hello Google, greetings from France !"
在 Unix 系统上,使用 Bash 和管道,您可以发挥创造力:
-
巴什问候:
google_speech -l en "Hello $USER, it is $(date)" -
倒数:
for i in {10..0}; do ( google_speech $i & ); sleep 1s; done -
阅读 Chuck Norris 的笑话:
curl -s http://api.icndb.com/jokes/random/ | python3 -c 'import html.parser, json, sys; print(html.parser.HTMLParser().unescape(json.load(sys.stdin)["value"]["joke"]))' | google_speech -
Python 用法
您可以google_speech从任何 Python 脚本或模块中使用。
示例代码:
from google_speech import Speech
# say "Hello World"
text = "Hello World"
lang = "en"
speech = Speech(text, lang)
speech.play()
# you can also apply audio effects while playing (using SoX)
# see http://sox.sourceforge.net/sox.html#EFFECTS for full effect documentation
sox_effects = ("speed", "1.5")
speech.play(sox_effects)
# save the speech to an MP3 file (no effect is applied)
speech.save("output.mp3")