
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.4] |
![]() |
|
Страницы: (23) « Первая ... 17 18 [19] 20 21 ... Последняя » ( Перейти к последнему сообщению ) |
Сообщ.
#271
,
|
|
|
Коллеги, у меня накопилась еще парочка вопросов:
1. При загрузке сочиненной мною языковой модели получаю сообщение, что слова <UNK> в словаре нет: Цитата sphinx4.config.edu.cmu.sphinx.linguist.dictionary.TextDictionary.dictionary INFO: The dictionary is missing a phonetic transcription for the word '<UNK>' Как мне кажется, это вообще ожидаемая ситуация, поскольку <UNK> - это плейсхолдер для неизвестных слов, так ведь? Все, что я нахожу в гугле по поводу данной ошибки сводится к советам удалить <UNK> из модели, что кажется мне странным. В коде сфинкса вроде бы упоминания <UNK> встречаются (Word.UNKNOWN). Вероятно, я что-то делаю не так? Модель я строю с параметром "-vocab_type 1" 2. При попытке построения акустической модели, процесс застревает на сообщениях Цитата Waiting for c:/Dev/SpeechRecognizerJava/data/acoustic_model/model_parameters/model.ci_cont/mixture_weights Результаты поиска в гугле сводятся к тому, что нужно бы правильно собрать sphinxtrain или починить предыдущие ошибки. sphinxtrain я использую из сборки под винду, уже готовенький, вроде бы доустанавливать его не надо. Из ошибок в логах - только вот это: Цитата Phase 3: Forward-Backward Baum welch starting for 1 Gaussian(s), iteration: 1 (1 of 1) bw Log File ERROR: This step had 56 ERROR messages and 0 WARNING messages. Please check the log file for details. completed Current Overall Likelihood Per Frame = -150.230580053717 Baum welch starting for 1 Gaussian(s), iteration: 2 (1 of 1) но все ошибки там такого характера: Цитата ERROR: "backward.c", line 421: Failed to align audio to trancript: final state of the search is not reached ERROR: "baum_welch.c", line 324: model_train_speaker_0038/wav_00048 ignored Слово "ignored" как будто намекает на то, что проблема не фатальна. Но других идей у меня нет, поэтому пока постепенно правлю эти ошибки. Как всегда, буду признателен за помощь! |
![]() |
Сообщ.
#272
,
|
|
Цитата Все, что я нахожу в гугле по поводу данной ошибки сводится к советам удалить <UNK> из модели, что кажется мне странным. В коде сфинкса вроде бы упоминания <UNK> встречаются (Word.UNKNOWN). Вероятно, я что-то делаю не так? Модель я строю с параметром "-vocab_type 1" Нужно -vocab_type 0, слова <UNK> в модели быть не должно. Цитата sphinxtrain я использую из сборки под винду, уже готовенький, вроде бы доустанавливать его не надо. Из ошибок в логах - только вот это: Не только, если mixture_weights не создаётся, значит, была ошибка при его создании. Она должна быть в логах. |
Сообщ.
#273
,
|
|
|
Цитата nsh @ Нужно -vocab_type 0, слова <UNK> в модели быть не должно. Спасибо за ответ! То есть модели с отсутствующими в словаре словами не поддерживаются сфинксом? А как же Word.UNKNOWN? Цитата nsh @ Не только, если mixture_weights не создаётся, значит, была ошибка при его создании. Она должна быть в логах. И действительно, ошибка была в логах, но не в файлах с логами, а в консоли, где постоянно забивалась сообщениями об отсутствии mixture_weights, из-за чего я ее и не видел. Спасибо за помощь! |
Сообщ.
#274
,
|
|
|
Подскажите ещё раз по украинскому языку.
Точнее, если необходимо распознавать двуязычную речь (русский и украинский) - то необходимо: 1. создать фонетический словарь (.dic), в котором были б сразу 2 языка 2. языковая модель (.lm) - опять же, скормить много двуязычного текста cmuclmtk'у 3. акустическая модель - можно взять zero_ru.cd_cont_4000, и попробовать её адаптиваровать Я хотя бы правильно понял необходимые шаги? |
Сообщ.
#275
,
|
|
|
Добрый день.
И да и нет. Как правило в каждом языке фонемы (и трифоны) различны, поэтому у меня большие сомнения, что текущую акустическую модель можно будет использовать для распознавания Украинского языка. Теоретически можно составить акустическую модель которая будет описывать сразу два языка. На сколько это будет хорошо работать, судить не могу. |
Сообщ.
#276
,
|
|
|
Уважаемые zamir, nsh, подскажите, пожалуйста, ещё по построению лингвистической модели. Несмотря на чёткий туториал, у меня всё равно возникли сложности
![]() Беру дамп украинской википедии, с помощью WikiExtractor.py извлекаю из него текст. Чищу его, нормализую как могу - в результате получаю ~2GB txt-файл. Скармливаю полученный текст SRILM'у (ngram-count), и получаю lm-файл на ~1.8GB с такими данными: ![]() ![]() ngram 1=2307890 ngram 2=31873691 ngram 3=10729675 2.3 миллиона 1-gram - это явно слишком (или плохо нормализовал/чистил текст, или особенности википедии). Тем более, словарь же должен содержать транскрипции всех 1-gram? Естественно, хочется уменьшить размер полученной лингвистической модели, удалить редко использумые слова. Но опция "-prune" влияет только на к-во 2-gram и 3-gram. Как правильно отфильтровать эти редко используемые слова? |
![]() |
Сообщ.
#277
,
|
|
Составить список 500к самых частых слов с помощью скрипта python, затем отфильтровать модель с помощью ключей ngram
![]() ![]() ngram -lm your.lm -vocab your.vocab -limit-vocab -write-lm small.lm или при тренировке ![]() ![]() ngram-count -vocab your.vocab -limit-vocab ... |
Сообщ.
#278
,
|
|
|
Точно, "ngram -lm your.lm -vocab your.vocab -limit-vocab -write-lm small.lm" - всё получилось. Спасибо
![]() Пробовал ngram-count, но, похоже, нельзя использовать такое сочетание опций? ![]() ![]() 09:38:36 ~/wiki> ngram-count -vocab train.vocab -limit-vocab -kndiscount -interpolate -text train.corpus -lm small.lm one of modified KneserNey discounts is negative error in discount estimator for order 1 Всё из-за моего непонимания используемых алгоритмов discounting... |
![]() |
Сообщ.
#279
,
|
|
Для kndiscount limit-vocab нужно применять в два шага, сначала вычислить параметры сглаживания:
![]() ![]() ngram-count -text text.txt -kn text.kn а затем уже тренировать модель ![]() ![]() ngram-count -kn text.kn -text text.txt -lm text.lm -vocab text.vocab -limit-vocab Описано в пункте C3 в FAQ |
Сообщ.
#280
,
|
|
|
Подскажите ещё по grapheme-to-phoneme conversion с помощью g2p-seq2seq.
Какие рекомендации по размеру словаря для создания модели? Я понимаю, что чем больше - тем лучше, но всё же.. |
![]() |
Сообщ.
#281
,
|
|
Цитата Какие рекомендации по размеру словаря для создания модели? Я понимаю, что чем больше - тем лучше, но всё же.. Этот вопрос лучше задать здесь: https://github.com/cmusphinx/g2p-seq2seq/issues/new там разработчик Вам на него ответит. |
Сообщ.
#282
,
|
|
|
Добрый день коллеги!
Скажите пожалуйста, как можно установить "уровень чувствительность" (назову это так) Sphinx? Команда ps_get_in_speech реагирует на каждый небольшой шум в канале, и начинает считать, что я начал произносить речь. |
![]() |
Сообщ.
#283
,
|
|
Цитата aileron @ Скажите пожалуйста, как можно установить "уровень чувствительность" (назову это так) Sphinx? Команда ps_get_in_speech реагирует на каждый небольшой шум в канале, и начинает считать, что я начал произносить речь. -vad_threshold 3.0 |
Сообщ.
#284
,
|
|
|
Цитата nsh @ -vad_threshold 3.0 Спасибо большое, всё сработало! Немного правда повысил до 3.9. Там еще три параметра каких-то в группе VAD. |
Сообщ.
#285
,
|
|
|
Доброе утро всем!
Никак не могу с этим VAD совладать... Вычистил звук отдельно ladspa, и заметил удивительную вещь: первые фраймы, что я кормлю Sphinx всегда функция ps_get_in_speech выдает, что там речь. Хотя там вообще чистая линия синусоиды. Подскажите пожалуйста почему так? |