iOS / C: алгоритм обнаружения фонем - PullRequest
18 голосов
/ 17 июня 2011

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

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

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

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

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

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

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

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

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

Ответы [ 4 ]

5 голосов
/ 30 июня 2011

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

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

  2. Создание независимой от динамика системы потребует данных от нескольких ораторов. И многое из этого тоже.

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

4 голосов
/ 23 июня 2011

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

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

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

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

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

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

1 голос
/ 30 июня 2011

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

0 голосов
/ 23 июня 2011

http://www.hfink.eu/matchbox

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

Полагаю, что еще предстоит проделать большую работу, чтобы придать ему формум, но также определенно делает большую работу.

...