0

Google Assistant SDK:我的用户输入始终是不变的,这意味着始终相同的用户命令,所以我不想让用户每次都通过设备麦克风录制语音命令,而是让用户按下按钮并通过传递执行命令预先录制的音频文件作为输入。谷歌助手 SDK 可以做到这一点吗?最好在 Python 中,因为我想围绕它构建一个 API 端点

任何链接、博客、教程、示例等都会非常有帮助

4

2 回答 2

2

使用 Google Assistant SDK,它接受文本或音频数据作为输入。

它目前可以在pushtotalk 示例中显示。

下面是一些代码片段,展示了它是如何在示例中完成的:

audio_source = audio_helpers.WaveSource(
        open(input_audio_file, 'rb'),
        sample_rate=audio_sample_rate,
        sample_width=audio_sample_width
# ...
# Create conversation stream with the 
# given audio source and sink.
conversation_stream = audio_helpers.ConversationStream(
    source=audio_source,
    sink=audio_sink,
    iter_size=audio_iter_size,
    sample_width=audio_sample_width,
)
# ...
with SampleAssistant(lang, device_model_id, device_id,
                     conversation_stream,
                     grpc_channel, grpc_deadline,
                     device_handler) as assistant:
    # If file arguments are supplied:
    # exit after the first turn of the conversation.
    if input_audio_file or output_audio_file:
        assistant.assist()
        return
于 2018-05-03T18:00:21.400 回答
0

py -m googlesamples.assistant.grpc.pushtotalk --device-id "你的设备 id" --device-model-id "你的设备型号" -i "your_sound_file.wav"'

这不会等待您播放文件,它会发送文件并执行并退出。但无论如何,我去过一个网站,不记得是哪个,但它会生成你想要的任何 wav 文件。我确实“打开了门廊灯”。现在我有一个无限循环的脚本,检查它是否可以在我的家庭网络上 ping 我的手机,如果它检测到它的到来,并且它是在晚上 7 点到早上 7 点之间,它会自动为我打开门廊灯。我唯一有问题的是,我不需要听到助手的声音。我希望有一种方法可以发送一个 arg 以使当前“对话”的助手响应静音。我使用 nircmd,复制到 windows 中的 system32 文件夹来解决这个问题,我将音量设置为 0,然后执行助手操作,然后将音量设置回 20%。效果很好。

于 2021-04-10T09:45:16.660 回答