亲,“电路城”已合并到全星升级的「与非网」。了解新「与非网」

  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

使用您的 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使用更改。

接着触发盒子,然后说“我的广播电台”。如果要停止,触发框并问另一个问题,或者只是说“谢谢”。

本方案更多详细资料可在附件中下载查看

以上内容翻译自网络,原作者:Victor Van Hee,如涉及侵权,可联系删除。

  • sensors_OIvVW6StXY.png
    1下载
    描述:谷歌 AIY 语音套件示意图
  • aiyprojects-raspbian-aiyprojects.zip
    1下载
    描述:代码

相关推荐

电子产业图谱