方案介绍
使用您的 Google AIY 制作语音激活的互联网流媒体广播,也可用于播放 MP3 或其他音频文件。
Google AIY 语音工具包是开始使用语音命令控制 Raspberry Pi 的好方法。该项目中的 Google 助理无法像 Google Home 那样播放音乐。所以我想添加使用语音激活播放流媒体广播或 MP3 的功能。使用这种方法,您可以让您的 Google AIY 语音项目在您的语音命令上播放您最喜欢的流媒体广播。
首先,安装 mpd(音乐播放器守护程序)和 mpc(mpd 的控制器)。
sudo apt-get install mpd mpc
接下来,编辑配置文件如下:
sudo nano /etc/mpd.conf
您将看到如下所示的一些行:
audio_output {
type "alsa"
name "My ALSA Device"
# device "hw:0,0" # optional
# mixer_type "hardware" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}
将这些行更改为以下内容(取消注释设备和混合器类型,并用软件替换硬件):
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
mixer_type "software" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}
接下来,在 mpd.conf 中查找单词“group”并将其更改为“audio”。
group "audio"
现在保存 mpd.conf 文件并返回终端。启动并启用 mpd 守护程序,使其在重新启动时启动。
sudo systemctl start mpd
sudo systemctl enable mpd
现在是时候测试您的网络收音机了。在线查找流媒体广播的链接。我找到了一个 KEXP 90.1 Seattle 的 .pls 文件,在文本编辑器中查看它,发现可以在 http://50.31.180.202:80 直接访问 KEXP 流。所以要测试你的播放器,输入:
mpc add http://50.31.180.202:80/
mpc play
您现在应该听到音频流。要停止它,请键入:
mpc stop
现在是时候修改voice-recognizer-raspi代码以使其能够识别您的命令了。使用 nano 编辑 python 文件:
nano /home/pi/voice-recognizer-raspi/src/action.py
首先,import subprocess在其他导入之后添加 action.py。接下来,在“在此处实施您自己的操作”之后放置以下类。确保将 http://50.31.180.202:80/ 更改为您的广播电台:
# Play Radio of your choice (change http://50.31.180.202:80/ to your choice)
class playRadio(object):
def __init__(self, say):
self.say = say
def run(self, voice_command):
self.say('Playing Radio')
subprocess.call("mpc clear;mpc add http://50.31.180.202:80/;mpc play",shell=True)
然后在“在此处添加您自己的语音命令”之后添加:
actor.add_keyword(_('my radio station'), playRadio(say))
现在(重新加载语音识别器后),当您触发该框并说“我的广播电台”时,您的广播电台将播放。
现在唯一的问题是,当您尝试执行另一个语音命令时,广播电台不会暂停。要在触发语音识别时使框暂停,您必须编辑 main.py 文件以在触发激活时停止 mpd。
nano /home/pi/voice-recognizer-raspi/src/main.py
首先,import subprocess在其他导入之后添加 main.py。然后在如下所示的确切位置添加 subprocess.call。这将首先停止 mpd,然后像往常一样再次启动 Google Assistant 监听。
def recognize(self):
if self.recognizer_event.is_set():
# Duplicate trigger (eg multiple button presses)
return
#############stop mpc################
subprocess.call("mpc stop", shell=True)
#####################################
self.recognizer.reset()
self.recorder.add_processor(self.recognizer)
self._status('listening')
现在sudo systemctl restart voice-recognizer使用更改。
接着触发盒子,然后说“我的广播电台”。如果要停止,触发框并问另一个问题,或者只是说“谢谢”。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !