Обнаружение голосовой активности в Android - PullRequest
0 голосов
/ 16 октября 2010

Я пишу приложение, которое будет вести себя подобно существующему распознаванию голоса, но будет отправлять звуковые данные в запатентованный веб-сервис для выполнения части распознавания речи.Я использую стандартный MediaRecord (который закодирован в AMR-NB), который идеально подходит для распознавания речи.Единственные данные, предоставленные этим, - это Amplitude с помощью метода getMaxAmplitude () .

Я пытаюсь определить, когда человек начинает говорить, чтобы когда человек перестал говорить в течение примерно 2 секундЯ могу приступить к отправке звуковых данных в веб-сервис.Прямо сейчас я использую порог для амплитуды, который, если он превышает значение (то есть 1500), то я предполагаю, что человек говорит.Меня беспокоит то, что уровни амплитуды могут варьироваться в зависимости от устройства (например, Nexus One v Droid), поэтому я ищу более стандартный подход к этому, который можно получить из значений амплитуды.

PS Я смотрел на графическая амплитуда , но это не дает возможности сделать это только с помощью амплитуды.

Ответы [ 3 ]

0 голосов
/ 16 октября 2010

Большинство смартфонов поставляются с датчиком приближения. В Android есть API для использования этих датчиков. Это будет достаточно для работы, которую вы описали. Когда пользователь подносит телефон к уху, вы можете закодировать приложение, чтобы начать запись. Это должно быть достаточно легко.

Сенсорный класс для андроида

0 голосов
/ 18 октября 2010

1500 слишком мало числа. Измерение изменения амплитуды будет работать лучше. Однако это все равно приведет к обнаружению пропусков.

Боюсь, единственный способ решить эту проблему - выяснить, как распознать простое слово или тон, а не просто обнаружить шум.

0 голосов
/ 16 октября 2010

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

...