用Python让树莓派“说话”

在这篇短文中我将告诉大家如何利用一段Python脚本让你的树莓派“说话”,还是真人发音的哦。因此,如果你想在自己的项目中增加一些人声,那么请跟着我的教程一步一步来,只需要写几行Python代码就能办到了。

在这个小项目中,你需要有这么几样东西

  • 一台树莓派(显然必须得有这个
  • 安装好兼容树莓派的操作系统(安装系统可利用NOOBS工具,傻瓜式安装哦)
  • 一对耳机/扬声器
  • 写几分钟的代码

首先你得安装mplayer,在终端中输入:

sudo apt-get install mplayer

现在假设一切顺利。在Raspbian系统中使用预安装好的Python解释器,输入如下代码:

# Rollcode.com
 
import sys, subprocess, urllib
 
def getSpeech(phrase):
    googleAPIurl = "http://translate.google.com/translate_tts?tl=en&"
    param = {'q': phrase}
    data = urllib.urlencode(param)
    googleAPIurl += data # Append the parameters
    return googleAPIurl
 
def raspberryTalk(text): # This will call mplayer and will play the sound
    subprocess.call(["mplayer",getSpeech(text)], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 
if __name__ == "__main__":
    raspberryTalk("Hello from Rollcode.com")

我们可以将上述代码保存到一个文件中,就命名为TalkingPi.py吧。现在只要输入:

sudo python TalkingPi.py

就可以听到树莓派好像真人一样开始说话了,所说的内容就是传递给函数raspberryTalk的参数。是不是很简单呢?其实我们就是利用mplayer来播放从google翻译传来的真人发声而已,就这么简单。

此外,如果你想通过终端来调整扬声器的音量,只需要输入alsamixer,然后通过向上和向下箭头来调整音量即可。

翻译自 roll code
翻译: 极客范 - 陈舸
译文链接: http://www.geekfan.net/4839/

不知道有木有开放的语音识别API, 如果能识别语音的话,就有的玩了。

在windows上有用 autohotkey 调用 系统自带的语音识别的, 但是那效率过于感人…

应该有,估计英文的比较多,不知道有木有中文的。