Отфильтровать определенный голос Google Speech API

Я создаю голосового бота, используя API потоковой передачи речи Google и преобразование текста в речь Google. Я хочу, чтобы транскрибировалась только речь пользователя, даже если пользователь «прерывает» ответ голосового бота. Как сделать так, чтобы голосовой бот не расшифровывал свой собственный голос?

Возможность «отфильтровать» определенные голоса кажется выполнимой в соответствии с моими тестами с существующими голосовыми ботами, такими как Siri, когда он разговаривает.

Спасибо


person Harry Stuart    schedule 27.02.2019    source источник


Ответы (1)


Хотя в Google Speech API из коробки нет такой возможности, вы можете попробовать некоторые известные алгоритмы. Звуковые волны аддитивны, поэтому вычитание аудиопотока из самого себя равно нулю (тишина). Имея это в виду и имея отдельный поток для вывода звука голосового робота, одним из подходов было бы вычитание речи голосового бота из входной речи пользователя. Если у вас нет доступа ни к одному из аудиопотоков или вы не можете разделить их, можно использовать другой подход: динамик. diarisation для извлечения двух источников голоса из одного.

Обратите внимание, что если вы сделаете наивное вычитание двух потоков, вы можете не достичь желаемого эффекта, потому что вычитание также ослабит звук. Вместо этого вам нужно инвертировать вычитаемый поток и смешать его с тем, из которого он вычитается.

person Alexander Solovets    schedule 01.08.2019