Программное обеспечение для распознавания неречевого шума или распознавания звука? - PullRequest
5 голосов
/ 04 ноября 2010

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

Я использовал CMU Sphinx и Windows Speech API в прошлом, однако, насколько я могу судить, ни один из них не поддерживает неречевые шумы, и на самом деле я считаю, что активно отфильтровываю их.

В общем, я ищу «Как мне получить эту функциональность», но я подозреваю, что это может помочь, если я разобью ее на три вопроса, которые являются моими догадками, что искать дальше:

  1. Существует ли способ использовать один из основных механизмов распознавания речи для распознавания несловесных звуков путем изменения акустической модели или словаря произношения?
  2. (или) Существует ли уже существующая библиотека для распознавания шума без слов?
  3. (или) Я немного знаком со «Скрытыми марковскими моделями» и базовой технологией распознавания голоса из колледжа, но не могу оценить, насколько сложно было бы создать очень маленький шум / распознаватель звука с нуля (предположим, < 20 шумов должны быть распознаны). Если 1) и 2) потерпят неудачу, какая-нибудь оценка того, сколько времени потребуется, чтобы бросить мою собственную?

Спасибо

Ответы [ 2 ]

1 голос
/ 28 декабря 2016

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

Короче говоря, последовательность шагов следующая:

Сначала подготовьте ресурсы для обучения: лексику, словарь и т. Д. Процесс описан здесь: http://cmusphinx.sourceforge.net/wiki/tutorialam. Но в вашем случае вам нужно переопределить набор фонем и лексику. А именно, вы должны моделировать наполнители как настоящие слова (то есть, без ++), и вам не нужно определять полный набор фонем. Возможностей много, но, вероятно, самый простой - иметь единую модель для всех речевых фонем. Таким образом, ваша лексика будет выглядеть так:

CLAP CLAP
BARK BARK
WHISTLE WHISTLE
FART FART
SPEECH SPEECH

Во-вторых, подготовьте данные обучения с метками: что-то похожее на VoxForge, но текстовые аннотации должны содержать только метки из вашего лексикона. Конечно, неречевые звуки также должны быть правильно обозначены. Хороший вопрос здесь, где взять достаточно большое количество таких данных. Но я думаю, это должно быть возможно.

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

Предполагая равную априорную вероятность любого звука / речи, простейшая языковая модель может представлять собой петлеобразную грамматику (http://cmusphinx.sourceforge.net/wiki/tutoriallm):

#JSGF V1.0;
/**
 * JSGF Grammar for Hello World example
 */
grammar foo;
public <foo> = (CLAP | BARK | WHISTLE | FART | SPEECH)+ ;

Это очень простой подход к использованию инструментария ASR для вашей задачи. Он может быть дополнительно улучшен путем точной настройки конфигураций HMM, использования статистических языковых моделей и использования точного моделирования фонем (например, различение гласных и согласных вместо единой модели SPEECH. Это зависит от характера ваших обучающих данных).

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

0 голосов
/ 04 ноября 2010

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

Будет ли эта статья представлять интерес? У него есть некоторые технические детали, они, кажется, способны распознавать хлопки и отличать их от свистков.

...