Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > СММ


Автор: Voprosnikov 23.6.2004, 16:41
Вопрос про скрытые модели маркова в распознавании речи.

Подскажите, плиз, каким образом осуществляется:
1) выбор количества состояний каждой модели
2) задание количества компонент Гауссовской смеси в случае непрерывных СММ
3) задание начальных значений pi, A, B (т.е. параметров СММ)

Если известна ссылка на ресурс, где все это в понятной форме разъяснено - благодарности не будет предела smile.gif

Заранее спасибо.

Автор: maxim1000 23.6.2004, 16:55
Цитата
1) выбор количества состояний каждой модели

в одной из встречавшихся мне реализаций делали так:
1. выбирают достаточно большое количество состояний
2. распознают исходное слово
3. уменьшают количество состояний
4. повторяют предыдущие пункты, пока ошибка распознавания не превысит порог

Автор: podval 23.6.2004, 19:52
Цитата
1) выбор количества состояний каждой модели

Зависит от того, на чём обучаем СММ. Если на фонемах, то чаще всего берут 3 состояния + 2 фиктивных (как бы начало и конец фонемы). Если на аллофонах - какая-то своя методика.

На 2-й и 3-й вопрос однозначного ответа нет. Очень много "если - то".

Хорошо об этом написано в ТИИЭР в статье Рабинера "Применение СММ в распознавании речи".
Вообще на эту тему русской литературы почти нет. То, что указал выше, является переводом.

Туториал от гуру: http://www.ai.mit.edu/~murphyk/Software/HMM/rabiner.pdf

Еще чтения:
http://www.ee.washington.edu/techsite/papers/documents/UWEETR-2002-0003.pdf
http://www.icsi.berkeley.edu/~jagota/NCS/vol2.html
http://www.datalab.uci.edu/papers/hmmpin.pdf


У Рабинера есть еще хорошая книжка "Fundamentals of speech recognition".

Вот это в качестве "галопа по европам": http://dsp-book.narod.ru/rec-notes.pdf.

Сразу обнадежу: "с нуля" поднять эту тему непросто smile.gif Но возможно, если задаться такой целью. Вот в помощь библиография: http://www.tsi.enst.fr/~cappe/docs/hmmbib.html


Полезная страничка: http://encyclopedia.thefreedictionary.com/Hidden%20Markov%20model. На ней линки не забудь.

Автор: Voprosnikov 23.6.2004, 21:36
Цитата(podval @ 23.6.2004, 19:52)

У Рабинера есть еще хорошая книжка "Fundamentals of speech recognition".
...
Сразу обнадежу: "с нуля" поднять эту тему непросто smile.gif Но возможно, если задаться такой целью.

Спасибо за ответ и за "обнадеживание" =)
Целью я задалась, так что...

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

Вот по-поводу Рабинера... В главе 4, пункт Е он пишет о возможных (2х) способах выбора количества состояний модели: первый вариант - кол-во фонем, второй - кол-во observations, те каждые 15мс моделирует одно состояние. Так вот, во втором случае получается, что наша СММ будет иметь достаточно много состояний.

1. Меняется ли это количество в процессе тренинга или остается?

2. Что из себя представляет тренинг Витерби? (на пальцах если можно =)

3. В распознавании алгоритм Витерби может быть использован для подсчета max вероятности наблюдений, пропущенных через модель. А для чего нам может пригодится последовательность состояний, максимизирующих эту вероятность? Ведь, как я понимаю, при распознавании речи используются чаще всего лево-правые СММ 1го порядка и последовательность там может быть лишь различной комбинацией "состояние(i) - состояние(i+1)" и "состояние(i) - состояние(i)"...

4) этот вопрос был задан на другом форуме, но ответа не последовало....
Может, здесь кто подскажет...

например, нас есть СММ для слова "лом", мы произносим слово "лом" и просто "л" - какая вероятность будет больше: Р("лом"|СММ) или Р("л"|СММ)? Если считать по forward алгоритму, то Р("л"|СММ) будет больше. Как вообще длина слова может быть учтена в СММ?

И опять длина СММ - в реальных системах она одна для всех СММ или все-таки различна?

Очень надеюсь на ответ...

Автор: podval 23.6.2004, 22:50
Цитата
1. Меняется ли это количество в процессе тренинга или остается?

Остается: одно наблюдение = один фрейм сигнала = одно состояние.

Цитата
2. Что из себя представляет тренинг Витерби? (на пальцах если можно =)

Это не тренинг, а декодирование.

Цитата
А для чего нам может пригодится последовательность состояний, максимизирующих эту вероятность?

Чтобы определить, к какой из фраз (слов) наиболее вероятно относится принятая реализация.

Цитата
Как вообще длина слова может быть учтена в СММ?

Принято считать не P(x), а -log P(x). Длина слова учитывается как раз количеством состояний в полученной СММ.

Цитата
И опять длина СММ - в реальных системах она одна для всех СММ или все-таки различна?

Смотря длину ЧЕГО ты спрашиваешь. Если рассматривать длину элементарной единицы речи (фонема, например), то ее длина, измеренная в количестве состояний СММ, одна и та же.
Длина слов, фраз - разная, т.к длительность их разная, т.е. разное количество фонем и, соответственно, разное количество состояний СММ.

Автор: Voprosnikov 24.6.2004, 00:19
Цитата(podval @ 23.6.2004, 22:50)
Длина слова учитывается как раз количеством состояний в полученной СММ.

Вот в этом-то и вопрос... Предположим, что мы рассматриваем СММ для целых слов, не для фонем. Вот спикер что-то сказал (иными словами, получили мы тренировочный набор векторов свойств), теперь мы хотим создать СММ для этого слова. Как выбрать кол-во состояний модели: 2 способа упомянутые выше (из Рабинера) - и все, больше ничего не придумали? Т.е. я беру и на каждый вектор создаю состояние и в итоге для выходной ф-ции должно получиться, что для этого отдельного символа (то, что получили после VQ, т.е.) вероятность выхода большая, а для остальных символов - маленькая? Вопрос звучит несколько сумбурно, но тем не менее... это все как-то unclear пока что... Да, и потом получается подряд много одинаковых состояний, т.к. рассматриваем 15мс интервал... а что тогда делать с "петлями", если на каждый символ - свое состояние?

Да, а с "лом" и "л" как? Какой будет результат?

adv/idontnow.gif

Автор: podval 24.6.2004, 08:55
Цитата
Предположим, что мы рассматриваем СММ для целых слов, не для фонем. Вот спикер что-то сказал (иными словами, получили мы тренировочный набор векторов свойств), теперь мы хотим создать СММ для этого слова.


СММ используются по-разному в разных задачах. Если мы распознаем ключевые слова (keywords spotting) - это одно, если занимаемся распознаванием слитной речи (continuous speech) - это совершенно другое. СММ в этих двух случаях решают разные задачи, обучаются и используются по-разному.

Цитата
Т.е. я беру и на каждый вектор создаю состояние
Еще раз нет!
Вернись, пожалуйста к основам. Перечитай туториал.

Цитата
Да, а с "лом" и "л" как? Какой будет результат?

Цитата
Если считать по forward алгоритму, то Р("л"|СММ) будет больше

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

Автор: podval 24.6.2004, 09:12
Рекомендую разыскать вот такую книгу:
Frederick Jelinek. "Statistical Methods for Speech Recognition". Massachusetts Institute of Technology, 2nd printing, 1999.

Очень толково написано все, что касается применения СММ.

Автор: Voprosnikov 24.6.2004, 09:52
Цитата(podval @ 24.6.2004, 09:12)
Рекомендую разыскать вот такую книгу:
Frederick Jelinek. "Statistical Methods for Speech Recognition". Massachusetts Institute of Technology, 2nd printing, 1999.

Очень толково написано все, что касается применения СММ.

ок, спасибо за ответы! постараюсь найти книжку... а есть ли ее перевод?

Автор: podval 24.6.2004, 20:10
Насчет перевода очень сомневаюсь. В России людей, плотно занимающихся методами СММ, маловато.

Автор: Voprosnikov 25.6.2004, 16:06
Цитата(podval @ 24.6.2004, 20:10)
Насчет перевода очень сомневаюсь. В России людей, плотно занимающихся методами СММ, маловато.

Ок. Я уже на английском нашла. Там математики...эх...

Кстати, в Вы не знаете ресурсы, где можно скачать работающие демки систем распознавания речи+краткое описание общих принципов их построения? Что бы немного прикоснуться к практике...

Автор: podval 25.6.2004, 18:33
http://www.torch.ch/ - здесь очень удачная библиотека функций на С++.

http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html - это матлабовский тулбокс.

http://htk.eng.cam.ac.uk/ - Hidden Markov Model Toolkit.

Автор: Voprosnikov 29.6.2004, 12:13
Цитата(podval @ 25.6.2004, 18:33)
http://www.torch.ch/ - здесь очень удачная библиотека функций на С++.

http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html - это матлабовский тулбокс.

http://htk.eng.cam.ac.uk/ - Hidden Markov Model Toolkit.

ок, спасибо большое за ссылки!

Еще вопрос про инициализацию СММ...

Segmental K-means алгоритм может быть использован для тренинга как самостотятельно, так и как вспомогательная процедура для инициализации параметров СММ перед переоценкой с пом. Вом-Вэлша? Это так?

И еще: какие методы тренинга вообще используются. Как я понимаю все зависет от того, что оптимизируем. Можно кратко указать, какие алгоритмы существуют и что они оптимизируют? (а то каша в голове почти неизбежна sad.gif )

Заранее спасибо!

Автор: podval 29.6.2004, 20:28
Цитата
Segmental K-means алгоритм может быть использован для тренинга как самостотятельно, так и как вспомогательная процедура для инициализации параметров СММ перед переоценкой с пом. Вом-Вэлша? Это так?

Ну если ты прочитала об этом, значит так smile.gif
Слишком узкоспециализированный вопрос.

Цитата
какие алгоритмы существуют и что они оптимизируют?

Ищи EM algorithm. Гугл выдаст большую кучу ссылок.
Вот одна из них выглядит вполне убедительно: http://page.mi.fu-berlin.de/~biocomp/Lehre/MarkovKetten_WS02/seminar/BilmesGentleTutEMAlgoHMM98.pdf

Автор: Voprosnikov 30.6.2004, 00:03
Цитата(podval @ 29.6.2004, 20:28)

Ищи EM algorithm. Гугл выдаст большую кучу ссылок.
Вот одна из них выглядит вполне убедительно: http://page.mi.fu-berlin.de/~biocomp/Lehre/MarkovKetten_WS02/seminar/BilmesGentleTutEMAlgoHMM98.pdf

Ух, спасибо большое...
На самом деле у меня вопросов по СММ воз и маленькая тележка... Так что тему буду продолжать, если возражений нет... smile.gif

Автор: podval 30.6.2004, 19:30
Будем, но только я в этой теме разбираюсь в пределах своей некомпетенции smile.gif
Как говаривают, точный ответ не обещаю, но направление поиска всегда пожалуйста.

Автор: kestas 18.11.2004, 16:29
Цитата
У Рабинера есть еще хорошая книжка "Fundamentals of speech recognition
smile


Help I need link to

Автор: podval 18.11.2004, 18:36
Цитата(kestas @ 18.11.2004, 17:29)
Цитата
У Рабинера есть еще хорошая книжка "Fundamentals of speech recognition
smile


Help I need link to

I am afraid you can find a hard copy at shops only.

I recommend to use one very helpful on-line tutorial here: http://www.isip.msstate.edu/projects/speech/software/tutorials/production/fundamentals/current/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)