15 июля 2009 в 22:16

Распознавание речи. Часть 1. Классификация систем распознавания речи

Эпиграф

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

Но не нужно думать, что за рубежом все уже все давно открыли и нам их никогда не догнать. Когда я искал материал для этой серии, пришлось перерыть тучу зарубежной литературы и диссертаций. Причем статьи и диссертации эти были замечательных американских ученых Huang Xuedong; Hisayoshi Kojima; DongSuk Yuk и др. Понятно, на ком эта отрасль американской науки держится? ;0)

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

image

Классификация систем распознавания речи



На сегодняшний день, под понятием “распознавание речи” скрывается целая сфера научной и инженерной деятельности. В общем, каждая задача распознавания речи сводится к тому, чтобы выделить, классифицировать и соответствующим образом отреагировать на человеческую речь из входного звукового потока. Это может быть и выполнение определенного действия на команду человека, и выделение определенного слова-маркера из большого массива телефонных переговоров, и системы для голосового ввода текста.



Признаки классификации систем распознавания речи

Каждая такая система имеет некоторые задачи, которые она призвана решать и комплекс подходов, которые применяются для решения поставленных задач. Рассмотрим основные признаки, по которым можно классифицировать системы распознавания человеческой речи и то, как этот признак может влиять на работу системы.
  • Размер словаря. Очевидно, что чем больше размер словаря, который заложен в систему распознавания, тем больше частота ошибок при распознавании слов системой. Например, словарь из 10 цифр может быть распознан практически безошибочно, тогда как частота ошибок при распознавании словаря в 100000 слов может достигать 45%. С другой стороны, даже распознавание небольшого словаря может давать большое количество ошибок распознавания, если слова в этом словаре очень похожи друг на друга.
  • Дикторозависимость или дикторонезависимость системы. По определению, дикторозависимая система предназначена для использования одним пользователем, в то время как дикторонезависимая система предназначена для работы с любым диктором. Дикторонезависимость – труднодостижимая цель, так как при обучении системы, она настраивается на параметры того диктора, на примере которого обучается. Частота ошибок распознавания таких систем обычно в 3-5 раз больше, чем частота ошибок дикторозависимых систем.
  • Раздельная или слитная речь. Если в речи каждое слово разделяется от другого участком тишины, то говорят, что эта речь – раздельная. Слитная речь – это естественно произнесенные предложения. Распознавание слитной речи намного труднее в связи с тем, что границы отдельных слов не четко определены и их произношение сильно искажено смазыванием произносимых звуков.
  • Назначение. Назначение системы определяет требуемый уровень абстракции, на котором будет происходить распознавание произнесенной речи. В командной системе (например, голосовой набор в сотовом телефоне) скорее всего, распознавание слова или фразы будет происходить как распознавание единого речевого элемента. А система диктовки текста потребует большей точности распознавания и, скорее всего, при интерпретации произнесенной фразы будет полагаться не только на то, что было произнесено в текущий момент, но и на то, как оно соотносится с тем, что было произнесено до этого. Также, в системе должен быть встроен набор грамматических правил, которым должен удовлетворять произносимый и распознаваемый текст. Чем строже эти правила, тем проще реализовать систему распознавания и тем ограниченней будет набор предложений, которые она сможет распознать.


Схема методов классификации систем распознавания речи

Различия методов распознавания речи

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


UPD: Перенес в «Искуственный интеллект». Если будет интерес, дальше публиковать буду в нем.
Глеб Радченко @domage
карма
30,2
рейтинг 0,0
Самое читаемое

Комментарии (40)

  • –1
    Эшелон то распознает. Не исключено что и Русскую речь.
    habrahabr.ru/blogs/lenta/1986/
    • 0
      Про применение систем распознавания речи в спецслужбах я могу только многозначительно промолчать. Если уж Google позволил себе сделать свободно-доступной систему логов телефонных разговоров, то за ширмой, я думаю, уже выжали из этой технологии все что возможно. И анализ эмоций, и распознавание диктора, и поиск по «слову-маркеру»…
      В той ссылке которую вы дали, насколько я понял, ведется речь об анализе речи на предмет эмоциональной насыщенности. При этом, про распознавание слов и речи ничего не говорится.

      Скорее всего, оно уже реализовано, и если вы по междугородге говорите на чистейшем англицком — то, скорее всего, вы уже записаны ;0) А вот с русскими словарями, к сожалению, пока что проблемы…
      • 0
        А что промолчать? По Гуглу и сужу. Русский во времена холодной войны был приоритетным по прослушке, так что вполне могли сделать. И еще не пришло время рассекречивать такие проекты — конечно в статьях основанных на фактах, а не на домыслах, не будет речи о распознавании.

        Почему именно по междугородке? Думаете у «них» есть технология прослушивания проводных переговоров? У «нас» то есть СОРМ, а у «них» есть что то кроме радиоразведки?
        • +1
          Промолчу, ибо не компетентен :0)
          И про прослушку знаю не больше, чем в «Популярной Механике» пишут.
        • +2
          • +1
            Если интересно:
            www.computerra.ru/414976/?phrase_id=10675692
            • 0
              Это вы к чему? Мой пост был комментарием к фразе: «У «нас» то есть СОРМ, а у «них» есть что то». Пожалуйста, знакомтесь что есть у них и как называется. А skype дело темное и исследоваию не подлежит. Хотите спать спокойно молчите ;). Ну или как минимум только открытые технологии.
      • 0
        Америка давно не скрывает, что слушает и распознаёт переговоры по сот. Подробностей не помню — в инете много инфы про это. Это не скрывают. Как всегда говорят против терроризма :)
        Наши, сотовые тоже давно слушают, и не скрывают сильно это. И текст распознают тоже.
        Помню как-то по орт даже репортаж был, мол готовилось заказное убийство на какого-то серьёзного человека нашей страны, и спалили это благодаря тому, что обсуждали заказ открытым текстом по сот телефону. Я тогда ещё удивился, как так, зачем рассказали это массам про эту технологию.
        • 0
          Ну на самом деле, это еще далеко не факт что там применялось именно распознавание. Ну или баба клава на проводе :)

          Или они там прямо про парсеры говорили?
          • 0
            ты представляешь сколько нужно баб Клав?
            Да, так и говорили про распознание текста по словарю.
            • 0
              Да не, это понятно… я просто подумал про то что изначально была ориентировка на этого человека, а потом уже раскопали.

              А ты значит говорил что в принципе первая зацепка этого дела была вытянута из разговоров произвольных людей, так?
              • 0
                именно! поэтому я и удивился, что это народу рассказали. Обычному смертному не надо знать что его слушают.
                • 0
                  Ага, понятно :) Ну а по поводу смертных, я думаю им банально пофиг. Или решили выпендриться.

                  Вообще, это в каких нибудь европах бы вызвало некий негативный резонанс, а тут…
        • 0
          Ну на самом деле, поскольку эта система узкоспециализированная — то ей не нужно быть супервысокотехнологичной: если просто надиктовывать ей текст то скорее всего она большую часть его не распознает, или будет работать ужасно медленно (с большим словарем); а вот на ограниченном словаре фраз типа «застрелить, оружие, взрыв, ...» — в самый раз. А этого достаточно, что бы пометить конкретный разговор, который впоследствии будет перепроверен «вручную». А раз достаточно — то тратится на приближение к универсальному распознаванию вряд ли кто-то будет, т.к. при высокой универсальности еще надо как минимум сохранить ту узкоспециализированность, а это сложно. Усложнять себе работу без улучшения результата (им то нужно потенциальных преступников отлавливать, а не софт для перевода речи в тест, разработать) — бессмысленные затраты времени и денег. Соответственно ничего сверхкрутого у спецслужб быть не обязано (хотя, в принципе, и может).
  • +1
    очень милая статья, автор молодец перелопатив материал

    немного забегу вперед и спрошу, нетерпится — сколько планируется их в цикле? про что еще поведаете?
    • +1
      Сколько — пока не знаю точно.
      Пока думаю что не меньше 3-4 частей обзорных.
      Дальше — война план покажет.

      Что расскажу — вот тут написал: domage.habrahabr.ru/blog/64572/#comment_1797664
  • +1
    а про мат аппарат будет? и про реализованные библиотеки для распознования речи
    • +2
      Посмотрим как пойдет.
      Мат аппарат будет обязательно (правда, боюсь с формулами тут придется повозиться).
      Хотя бы в общих чертах расскажу про цепи маркова, вейвлеты, фильтрацию. От нейросетей тоже никуда не деться.
      А с реализованными библиотеками будет труднее: без испытания про них говорить нечего, а на это требуется тьма времени…
  • +1
    Великолепная статья! Очень жду продолжения.
    А нет ли у вас ссылок хороших по теме? Было бы очень интересно почитать про это дело по-глубже, про вейвлет-преобразование то же…
    • 0
      Ах эти вейвлеты…
      Да, про них буду писать. К сожалению, сил пока нет скомпоновать всю библиографию, но для затравки — самое оно (практически библия распознавателя речи):
      Huang Xuedong. Spoken language processing: a guide to theory, algorithm and system development. –New Jersey: Prentice Hall PTR, 2001. – 980 с.
      У меня где-то была, как найду — выложу обязательно.
      • 0
        Нашел… :) Спасибо больше, постараюсь что-нибудь прочитать и усвоить, надеюсь знания языка хватит :)
        Желаю вам ещё много хороших статей! :)
        • 0
          Можешь сразу ссылку кинуть сюда?
          • +4
            Взял на себя смелость перезалить, ибо Рапидшара как-то совсем сдает, 5-минутные задержки — это круто.
            narod.ru/disk/10964878000/Spoken%20Language%20Processing%2C%20A%20Guide%20to%20Theory%2C%20Algorithm%20and%20System%20Development%20-%20ISBN%200130226165%20-%20965s%20-%20Laxxuss.pdf.html
  • +1
    а vselisdelal.ru разве не распознает?
    • 0
      О!
      Да.
      Распознает.
      habrahabr.ru/blogs/startup/36752/

      Если знаете еще подобные сервисы, ориентированные на русский язык, было бы интересно узнать и о них.
    • 0
      О!
      Да.
      Распознает.
      habrahabr.ru/blogs/startup/36752/

      Если знаете еще подобные сервисы, ориентированные на русский язык, было бы интересно узнать и о них.
    • 0
      На сколько я понимаю, распознает. Даже в Evernote предлагают создавать заметки по телефону голосом.
      • 0
        А Evernote — наша разработка?
        Вообще, было бы очень интересно узнать, для распознавания они используют «коробочные» решения или сами реализуют?..
        Глубоко сомневаюсь, что сегодня ради такой системки будет свою библиотеку распознавания речи писать, обучать и т.п.
        • 0
          При чем тут чья разработка Evernote? Я говорил о том, что vselisdelal.ru распознают для Evernote — видел рекламу в клиенте :) vselisdelal.ru/Evernote.aspx

          А что они используют написано по ссылке приведенной выше. Цитирую: «П.с. 1. так как этот сервис идет на базе технических решений другого (основного) проекта, то мы смогли отстоять возможность пользоваться им бесплатно.»
          • 0
            Даже если и непричем, Эверноут все таки наша разработка)
      • 0
        Но судя по предоставляемым возможностям, там человек сидит.
        • 0
          В посте про Вселисделал это обсуждали, но нас уверили что это все-таки система, я к этому тоже склоняюсь как то более.
  • 0
    Очень хорошее введение! Спасибо!
    Надеюсь, эта статья поднимет новую волну разработок.
    Действительно, очень не хватает русскоязычных движков.
    Очень не хватает!
  • +3
    Для тех кого интересует распознование речи: voxforge.org — opensource проект, нужны добровольцы, нужно наговаривать текст онлайн, прямо на странице. Многие opensource программы нуждаются в этой базе (например: Julius, Sphinx, HTK)
    • 0
      Зашёл сюда чтобы спросить про открытое ПО. Спасибо.
  • 0
    Хуанг Хуедонг и ДонгСук хех, представляю как они ржут с наших «Иван Сидоров»,…
    • 0
      Угу. А что, обычные американские ученые…
    • 0
      А уж как англичане ржут с нашего «Сергей»…
  • 0
    Ох, как я не навижу эти распозновалки в колинг центрах.
    У меня произношение очень даже на уровне, а они даже Yes или No часто не могут разобрать не говоря уже о выборе варианта adviser из меню. Уж тупо на диалпаде быстрее было. а что больше всего огорчает, что менеджер все равно переспрашивает, как правило, все что ты мучался вбивал и надиктовывал за крайне редким исключением.
  • 0
    Для своего психологического (магистратура РГГУ) исследования думаю попробовать написать инструмент. Хотел просто понять, насколько это сложно, сам программист с 10-летним стажем. У меня задача на первый взгляд кажется упрощенной — мне надо в записи терапевтической сессии выделять некие ключевые слова, сказанные клиентом — например, «я». именно отдельные слова, как «Я программист», а чтобы слова «Молния!» пропускались. Или «сам», «сам себе». А так же, возможно, другие местоимения и их формы. Не посоветуете, куда посмотреть, что почитать? 4 года прошло, но вдруг у вас есть что-то новое по теме.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.