Отфильтровать определенный голос Google Speech API - PullRequest
0 голосов
/ 27 февраля 2019

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

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

Спасибо

1 Ответ

0 голосов
/ 01 августа 2019

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

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

...