Распознать фразу из голосового ввода, только если интенсивность достигает определенного децибела [iOS]

Я хорошо просмотрел темы в этой группе, пытаясь понять, рассматривался ли этот вопрос ранее, но не смог найти точную вещь. Итак, извинения, если это старая шляпа. Пожалуйста, извините новичка в моем вопросе.

Как сделать так, чтобы приложение для iOS распознавало фразу из голосового ввода, только если интенсивность достигает определенного децибела? Пример: когда пользователь говорит "привет там", он должен перехватить голос и затем проверить фразу, чтобы убедиться, что пользователь сказал "привет" или что-то еще. Возможно, openears могли бы решить это для меня. Но как я могу измерить интенсивность голоса? Голосовой ввод должен учитываться только в том случае, если фраза "здравствуй, там" произносится при 110 дБ. Если нет, его следует игнорировать. Можно ли это сделать с помощью Openears? Пожалуйста, направьте меня со своими предложениями

1 ответ

Решение

Разработчик OpenEars здесь. Класс PocketphinxController в OpenEars (класс, который выполняет распознавание речи) имеет свойство pocketsphinxInputLevel, которое вы можете прочитать во вторичном потоке, чтобы узнать мощность ввода. В документации есть информация об этом и пример использования с возможностью копирования и вставки в образце приложения OpenEars, так что вам стоит начать. Для уровней в децибелах используется то же соглашение, что и для децибел-показаний AudioQueue, поэтому они дают децибелы в виде отрицательного смещения от нуля, где ноль - это точка отсечения, а не положительное абсолютное значение.

Другие вопросы по тегам