首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中使用多个唤醒单词(雪球)?

如何在python中使用多个唤醒单词(雪球)?
EN

Stack Overflow用户
提问于 2019-09-28 22:29:48
回答 1查看 687关注 0票数 0

我正在构建一个个人语音助手,我想让我的AI听唤醒单词的命令(我不知道这是不是一个好主意,所以如果不是建议我),因为SpeechRecogniton需要互联网,它有点重,使AI的反应更慢……但是当我设置一个以上的唤醒词并处死他时,它无法识别任何命令……

代码语言:javascript
复制
import datetime
import pyttsx3  # pip install pyttsx3
import os
import sys
import re
import snowboy.snowboydecoder as snowboydecoder

engine = pyttsx3.init()
voices = engine.getProperty('voices')
# for voice in voices:
#   print(voice.id)
engine.setProperty('voice', voices[0].id)


def speak(audio):
    engine.say(audio)
    engine.runAndWait()


def Greetings():
 speak ("Hi Sir")

def How_are_you_doing():
 speak ("I'm very good, Sir. And You?")

def wake_word():
 print ("Hello_word")
 detector=snowboydecoder.HotwordDetector("Hey_Bold.pmdl",sensitivity=0.5,audio_gain=1)
 detector.start(Greetings)


def how_you_doing():
    print ("how_you_doing_word")
detector_how = snowboydecoder.HotwordDetector("How_you_doing.pmdl", sensitivity=0.5, audio_gain=1)
detector_how.start(How_are_you_doing)

欢迎使用任何设备!

EN

回答 1

Stack Overflow用户

发布于 2019-11-23 07:28:51

为了收听大量唤醒单词,只需将唤醒单词模型路径列表传递给HotwordDetector (见下文)。

下面是一个收听连接到谷歌助手的唤醒词的工作示例(使用来自https://github.com/google/aiyprojects-raspbian/releases/tag/v20191113的AIY语音图像运行RPI4)

代码语言:javascript
复制
import locale
import logging
import signal
from aiy.assistant.grpc import AssistantServiceClientWithLed
from aiy.board import Board
import mod.snowboydecoder as snowboydecoder

models = ['/home/pi/snowboy/resources/wake_word1.umdl',
          '/home/pi/snowboy/resources/wake_word12.umdl']

def main():
    logging.basicConfig(level=logging.DEBUG)
    signal.signal(signal.SIGTERM, lambda signum, frame: sys.exit(0))

    detector = snowboydecoder.HotwordDetector(models, sensitivity=0.5)
    with Board() as board:
        assistant = AssistantServiceClientWithLed(
            board=board,
            volume_percentage=100,
            language_code=locale.getdefaultlocale())
        while True:
            logging.info('say any of your pre-defined hotwords to start the assisteant')
            detector.start()
            logging.info('assistant is now listening :)')
            assistant.conversation()

if __name__ == '__main__':
    main()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58147298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档