Python: можете ли вы напрямую передать аудиофайл в качестве команды ввода пользователя в Google Assistant SDK?

Google Assistant SDK: мой пользовательский ввод всегда постоянен, что означает постоянную команду пользователя, поэтому вместо того, чтобы просить пользователя каждый раз записывать голосовую команду через микрофон устройства, я хочу, чтобы пользователь нажал кнопку и выполнил команду, передав предварительно записанный аудиофайл в качестве входного. Возможно ли это с помощью SDK Google Assistant? Желательно на Python, так как я хочу построить вокруг него конечную точку API

Любые ссылки, блоги, руководства, образцы и т. Д. Будут очень полезны.


person joke4me    schedule 03.05.2018    source источник


Ответы (2)


С SDK Google Assistant он принимает на вход текстовые или аудиоданные.

В настоящее время это то, что можно показать в пример 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
person Nick Felker    schedule 03.05.2018
comment
Спасибо, Ник, попробовал pushtotalk и textinput, это круто! Но еще не понял, почему не работает аудиовход (pushtotalk -i file.wav), нет ошибки или ответа от помощника - person joke4me; 04.05.2018
comment
Я не совсем уверен, почему это не сработает. Можете ли вы попробовать один из аудиофайлов? включены в образец? Они в формате riff fwiw. - person Nick Felker; 04.05.2018

py -m googlesamples.assistant.grpc.pushtotalk --device-id ваш идентификатор устройства --device-model-id модель вашего устройства -i your_sound_file.wav '

это не будет ждать, пока вы воспроизведете файл, он отправит файл, запустится и выйдет. но в любом случае, я пошел на веб-сайт, не могу вспомнить, какой, но он генерировал wav-файлы всего, что вы хотели. Я зажег свет на крыльце. Теперь у меня есть сценарий, который бесконечно зацикливается, проверяет, может ли он пинговать мой мобильный телефон в моей домашней сети, и если он обнаруживает его прибытие, а это между 19:00 и 7:00, он автоматически включает свет на крыльце. Единственное, с чем у меня проблема, это то, что мне не нужно слышать голос ассистентов. Я бы хотел, чтобы был способ отправить аргумент, который отключал бы ответы помощника для текущего разговора. Я использую nircmd, скопированный в папку system32 в Windows, чтобы обойти это, но я установил громкость на 0, затем сделал помощник, затем снова установил громкость на 20%. Работает неплохо.

person james28909    schedule 10.04.2021