Как начать работу с преобразованием речи в текст?

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

Есть ли у кого-нибудь, кто имеет опыт работы с подобными вещами, какие-либо рекомендации по чтению / изучению исходного кода? Или просто общие советы о том, что я должен попытаться узнать, если я хочу попасть в мир написания программ распознавания речи (иногда трудно понять, что искать, если у вас мало знаний в предметной области).

Изменить: я хотел бы сделать что-то кроссплатформенное, но на данный момент я буду ориентироваться на Linux.

Изменить 2: Спасибо csmba за хорошо продуманный ответ. На данный момент меня в основном интересует возможность создавать приложения, которые позволяют автоматизировать или выполнять различные команды с помощью голоса. Итак, ограниченное количество узнаваемых команд можно связать вместе. Примером может служить музыкальный проигрыватель, который выполнял такие команды, как «Воспроизвести альбом Hello Everything от Squarepusher», или средство запуска приложений, которое позволяло пользователю создавать голосовые ярлыки для запуска определенных приложений.

Я понимаю, что это довольно гигантская проблема, и что у меня нет даже близко к тому уровню знаний, который необходим прямо сейчас, чтобы заняться реализацией всего механизма распознавания, хотя методы, связанные с этим, меня очаровывают, и я хотел бы над этим работать. я готов делать. По всей вероятности, я, вероятно, возьму пару книг по этой теме и изучу / поиграю с «простыми» реализациями в свободное время.

Ответов (6)

Решение

Это ОГРОМНЫЙ вопрос, я бы не знал, с чего начать ... Так что позвольте мне просто дать вам правильные "термины", чтобы вы могли уточнить свой квест:

Во-первых, поймите, что распознавание речи - это разнообразный и сложный предмет, имеющий множество различных применений. Люди склонны соотносить этот домен с первым, что приходит им в голову (обычно это компьютеры, понимающие, что вы говорите, как в системах IVR). Итак, сначала давайте разделим концепцию на основные категории:

Человек-машина: приложения, которые занимаются пониманием того, что говорит человек, но человек знает, что он разговаривает с машиной, а грамматика очень ограничена. Примеры

  • Компьютерная автоматизация
  • Специализированный: например, пилоты автоматизируют некоторые элементы управления (шум - огромная проблема).
  • Системы IVR (интерактивного голосового ответа), такие как Google-411, или когда вы звоните в банк, и компьютер на другой стороне говорит: «Скажите« обслуживание », чтобы получить обслуживание клиентов».

от человека к человеку (спонтанная речь): это более серьезная и сложная проблема. Здесь мы также можем разбить его на разные приложения:

  • Колл-центр: разговор Агент-Заказчик, телефон качественный, сжатый
  • Разведка: радио / телефон / живые разговоры между 2 или более людьми

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

Кроме того, вы заинтересованы в том, чтобы стать доктором наук, стоящим за этой технологией? вам понадобится эквивалент Masters, включающий обработку сигналов и, возможно, PHd, чтобы быть на переднем крае. В этом случае вы будете работать в компании, которая разрабатывает речевой движок . Такие компании, как Nuance и IBM, являются крупными, но существуют также Phillips и другие стартапы.

С другой стороны, если вы хотите быть тем, кто реализует приложения, вы будете работать не над движком, а над созданием приложения, которое ИСПОЛЬЗУЕТ движок. Я думаю, это хорошая аналогия с игровой индустрией: вы разрабатываете графический движок (например, движок Cry) или работаете над одной из нескольких сотен игр, в которых все используют один и тот же графический движок?

Не поймите меня неправильно, есть еще много над чем поработать над качеством поиска за пределами мира IBM / Nuance. Движок обычно очень открытый, и необходимо выполнить множество алгоритмических настроек, которые могут существенно повлиять на производительность. Каждое бизнес-приложение имеет разные ограничения и функцию соотношения цены и качества, поэтому вы можете в течение многих лет экспериментировать, создавая более совершенные приложения на основе распознавания голоса.

еще одна вещь: в общем, вам также хотелось бы иметь хороший статистический фон, чем ниже в стеке вы хотите быть.

На данный момент меня в основном интересует возможность создавать приложения, позволяющие автоматизировать

Хорошо, мы здесь сходимся ... Значит, вам неинтересно «Преобразование речи в текст». Эти модные слова переносят вас в мир полной транскрипции, куда вам не нужно идти. Вам следует сосредоточиться на некоторых технологиях взаимодействия человека с машиной, таких как голосовой XML и тех, которые используются в системах IVR (Nuance - крупнейший игрок в этой области)

Также существует служба распознавания речи для Android.

На какую платформу вы нацеливаетесь? Существуют API-интерфейсы Microsoft Speech, которые вы можете использовать для Windows.

Я работал с продуктом IBM ViaVoice . У него хороший механизм ASR (автоматическое распознавание речи) и хороший механизм преобразования текста в речь.

Сайты не очень хорошие, но это ссылка на встроенную версию http://www-01.ibm.com/software/voice/support/

Однако это не зависит от платформы, и все работает через архитектуру MVC с использованием vxml, варианта xml для голосовых целей.

Для OS X проверьте это: OS X Speech Technologies

Для Windows проверьте это: Microsoft Speech API

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

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