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

StackOverflow https://stackoverflow.com/questions/14837

Вопрос

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

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

Редактировать:Я бы хотел сделать что-нибудь кроссплатформенное, но на данный момент я бы нацелился на linux.

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

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

Это было полезно?

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие советы

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

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

Для OS X ознакомьтесь с этим: Речевые технологии OS X

Для Windows ознакомьтесь с этим: Microsoft Speech API

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top