Подтвердить что ты не робот

IOS/C: Алгоритм обнаружения фонем

Я ищу алгоритм для определения того, соответствует ли вход аудиосигнала в реальном времени одной из 144 заданных (и удобно различимых) пар фонем.

Предпочтительно самый низкий уровень, который выполняет задание.

Я разрабатываю радикальное/экспериментальное программное обеспечение для музыкального обучения для iPhone/iPad.

Моя музыкальная система состоит из 12 согласных фонем и 12 гласных фонем, продемонстрированных здесь. Это составляет 144 пары фонем. Студент должен спеть правильную пару фонем "laa duu bee" и т.д. В ответ на визуальный стимул.

Я провел много исследований по этому вопросу, похоже, что лучше всего использовать одну из оберток iOS Sphinx (iPhone App > Добавить распознавание голоса? - лучший источник информации, который я нашел). Однако я не вижу, как бы я адаптировал такой пакет, может ли кто-либо, имеющий опыт использования одной из этих технологий, дать базовое изложение шагов, которые потребуются?

Будет ли обучение необходимым для пользователя? Я бы не подумал, что это такая элементарная задача, по сравнению с полными языковыми моделями тысяч слов и гораздо большей и более тонкой базой фонем. Тем не менее, было бы приемлемым (не идеальным), чтобы пользователь обучал 12 пар фонем: {consonant1 + vowel1, consonant2 + vowel2,..., consonant12 + vowel12}. Полные 144 были бы слишком обременительными.

Есть ли более простой подход? Я чувствую, что использование полнофункционального непрерывного распознавателя речи использует кувалду, чтобы взломать орех. Было бы гораздо шире использовать минимальную технологию, которая бы решила проблему.

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

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

4b9b3361

Ответ 1

Если вы ищете распознаватель открытого кода на уровне телефона, я бы рекомендовал HTK. Очень хорошая документация доступна с помощью этого инструмента в виде книги HTK. Он также содержит целую главу, посвященную построению распознавателя речи в реальном времени на уровне телефона. Из приведенного выше вышесказанного мне кажется, что вы можете переделать этот пример в свое собственное решение. Возможные подводные камни:

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

  • Для создания независимой от громкоговорителей системы потребуются данные от более чем одного динамика. И много этого тоже.

  • Поскольку это open-source, вы также должны проверить информацию о лицензировании для получения дополнительной информации о доставке кода. Хорошей альтернативой было бы использовать записывающее устройство на телефоне, а затем записать записанную форму волны по каналу данных на сервер для распознавания, что-то вроде того, что делает Google.

Ответ 2

У меня есть немного опыта работы с этим типом обработки сигналов, и я бы сказал, что это, вероятно, не тип конечного вопроса, на который можно ответить окончательно.

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

Использование Sphinx, вероятно, является отличным началом этой проблемы. Я не очень далеко зашел в библиотеку, но думаю, вы сами будете работать с исходным кодом, чтобы получить именно то, что хотите. (Hooray для open source!)

... используя кувалду, чтобы расколоть орех.

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

Все самое лучшее при решении ваших проблем.

Ответ 3

Не уверен, что это поможет: проверьте OpenEars 'LanguageModelGenerator. OpenEars использует Sphinx и другие библиотеки.

Ответ 4

http://www.hfink.eu/matchbox

Эта страница ссылается как на видеоролик YouTube, так и на источник github.

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