Комментарии 26
Заголовок поправьте. Опечатка закралась.
А как происходит корректировка времени? В зависимости от чего, и по какому принципу?
Я в следующих частях этот вопрос постараюсь чуточку осветить.
Основной принцип: необходимо входной сигнал «сжать/расширить» до требуемого шаблона. Т.е. если мы распознаем команды, то находим среднее значение временного промежутка для всех из них. Грубо говоря, 1 с. И все входные сигналы (от начала речи до конца речи) масштабируем до этого времени.
Причем мастабировать надо так, чтобы частота входного сигнала не изменилась, иначе вносятся значительные искажения.
Простейший вариант — как показано на картинке: дублируем сигнал и накладываем сам на себя (с учетом заданного линейного затухания). При масштабировании с коэффициентом до 1.3-1.5 качество сигнала на выходе получается достаточное.
Основной принцип: необходимо входной сигнал «сжать/расширить» до требуемого шаблона. Т.е. если мы распознаем команды, то находим среднее значение временного промежутка для всех из них. Грубо говоря, 1 с. И все входные сигналы (от начала речи до конца речи) масштабируем до этого времени.
Причем мастабировать надо так, чтобы частота входного сигнала не изменилась, иначе вносятся значительные искажения.
Простейший вариант — как показано на картинке: дублируем сигнал и накладываем сам на себя (с учетом заданного линейного затухания). При масштабировании с коэффициентом до 1.3-1.5 качество сигнала на выходе получается достаточное.
Шустро вы. Я так понимаю, вы свою некую работу по кусочкам выкладываете?
И вот ещё вопрос созрел. Насколько чувствительны эти системы к таким искажениям в голосе, как, допустим, акцент, заложенность носа, и т.д.
И применяются ли какие-то дополнительные алгоритмы, например, что бы отсечь фоновый шум? По идее, он должен оказывать определенное влияние на распознавание, т.к. распознавание речи редко происходит в абсолютной тишине…
И вот ещё вопрос созрел. Насколько чувствительны эти системы к таким искажениям в голосе, как, допустим, акцент, заложенность носа, и т.д.
И применяются ли какие-то дополнительные алгоритмы, например, что бы отсечь фоновый шум? По идее, он должен оказывать определенное влияние на распознавание, т.к. распознавание речи редко происходит в абсолютной тишине…
Да естественно. Если выложить сразу много, то читать будет скушно. А если постепенно — то кто-нибудь может и втянуться (как показала практика наркодиллеров ;0)) )
Следующая часть будет очень интересная, кстати.
Акцент — может влиять существенно, особенно в дикторонезависимых системах, наученых исключительно на носителях языка. Если обучал «носитель» акцента, то качественно можно будет распознать только его речь.
Заложенность носа — может влиять не очень существенно, но может значительно исказить результаты распознавания диктора (т.е. не распознавание фразы, но распознавание того, кто говорил).
В принципе, все зависит от конкретной реализации системы распознавания.
Фильтрация, естественно, производится. С фильтров выделяется спектр речи (0.3 — 3.4 kHz), пытаются максимально отсечь посторонние шумы. На фокализованых звуках (гласных, звонких согласных) это делать относительно легко. Главное — не затереть шипящие и другие невокализованные участки.
Следующая часть будет очень интересная, кстати.
Акцент — может влиять существенно, особенно в дикторонезависимых системах, наученых исключительно на носителях языка. Если обучал «носитель» акцента, то качественно можно будет распознать только его речь.
Заложенность носа — может влиять не очень существенно, но может значительно исказить результаты распознавания диктора (т.е. не распознавание фразы, но распознавание того, кто говорил).
В принципе, все зависит от конкретной реализации системы распознавания.
Фильтрация, естественно, производится. С фильтров выделяется спектр речи (0.3 — 3.4 kHz), пытаются максимально отсечь посторонние шумы. На фокализованых звуках (гласных, звонких согласных) это делать относительно легко. Главное — не затереть шипящие и другие невокализованные участки.
Я про искажение голоса неспроста спросил… У меня одно время была задумка попробовать сделать ГА, который бы на основе анализа параметров звукового сигнала человека подстраивал бы те же вейвлетные коэффициенты к некоему универсальному голосу (эталону). Не знаю, было это когда либо реализовано или нет, и возможно ли это… мои познания, к сожалению, недалеки от их отсутствия :)
Вейвлеты они на то и используются, чтобы решеткой фильтров убрать 99% не нужной информации о сигнале (тембр речи, гнусавость, манеру произношения) и оставить 1% «сухого остатка», однозначно характеризующего определенное слово/букву.
А вариант, близкий тому, который ты предлагаешь я здесь еще покажу. С помощью специального мат. аппарата пытаются узнать, как должны двигаться мышцы голосового тракта, чтобы по этим движениям однозначно определить произнесенный звук…
Но, как по мне, так это как операция на глаза через толстую кишку… «А я никого не подпущу к своей толстой кишке!» (с)
А вариант, близкий тому, который ты предлагаешь я здесь еще покажу. С помощью специального мат. аппарата пытаются узнать, как должны двигаться мышцы голосового тракта, чтобы по этим движениям однозначно определить произнесенный звук…
Но, как по мне, так это как операция на глаза через толстую кишку… «А я никого не подпущу к своей толстой кишке!» (с)
Я правильно понимаю, что сравнение сигнала с эталонными происходит во временной области, а не в виде каких-нибудь вейвлетов?
В зависимости от алгоритма — по-разному.
В моей реализации — два измерения: дискретное время (кадр) и вейвлетные коэффициэнты. Грубо говоря, 10 коэффициентов на кадр.
Я подробнее буду рассказывать дальше.
В моей реализации — два измерения: дискретное время (кадр) и вейвлетные коэффициэнты. Грубо говоря, 10 коэффициентов на кадр.
Я подробнее буду рассказывать дальше.
Посмотри картинку «Речевые кадры». Там каждый столбик соответствует отдельному временному кадру:
по X — время;
по Y — номер коэффициента.
по X — время;
по Y — номер коэффициента.
Замечтался я тут и вот что придумал:
Насколько я понимаю, хоть и в статье это не указано, реализуется такая система на основе нейронных сетей. А одна из проблем — это обучение сети. Я предожил бы такую реализацию, рассчитанную на ближайшее будущее:
На пк или ноут пользователя ставится программа, которая будет следить (не без помощи пользователя) за тем что пишет и читает пользователь, а он в свою очередь будет это произносить. Таким образом в течение времени система будет постепенно учиться на примерах из реальной жизни. Это будет дикторозависимая сеть, распознающая слитную речь с большим объёмом словаря, которую можно будет использовать для различных целей
Далее обученную сеть можно виртуализовать, что бы быть не зависимым от конкретного устройства. А на основе анализа личных обученных сетей пользователей сделать дикторонезависимую сеть.
Насколько я понимаю, хоть и в статье это не указано, реализуется такая система на основе нейронных сетей. А одна из проблем — это обучение сети. Я предожил бы такую реализацию, рассчитанную на ближайшее будущее:
На пк или ноут пользователя ставится программа, которая будет следить (не без помощи пользователя) за тем что пишет и читает пользователь, а он в свою очередь будет это произносить. Таким образом в течение времени система будет постепенно учиться на примерах из реальной жизни. Это будет дикторозависимая сеть, распознающая слитную речь с большим объёмом словаря, которую можно будет использовать для различных целей
Далее обученную сеть можно виртуализовать, что бы быть не зависимым от конкретного устройства. А на основе анализа личных обученных сетей пользователей сделать дикторонезависимую сеть.
Эта система уже «успешно» была сделана, показывала качество дикторонезависимого распознавания 5-и команд с 5-7% ошибок и была обучена на 9-и дикторах. После чего, к сожалению, все заглохло, так как у нас до сих пор нет команд, которые хотели бы этим заняться. Сейчас пришлось переквалифицироваться в распределенные вычисления, на это у нас спрос есть.
Насчет вашей идеи: с нейросетями есть противоположная проблема — переобучение. Это когда добавление информации о новом дикторе не увеличивает, но уменьшает качество распознавания. В рамках этой работы этот эффект наблюдался уже на 8-и — 9-и пользователях.
Насчет вашей идеи: с нейросетями есть противоположная проблема — переобучение. Это когда добавление информации о новом дикторе не увеличивает, но уменьшает качество распознавания. В рамках этой работы этот эффект наблюдался уже на 8-и — 9-и пользователях.
Очень интересно, не останавливайтесь, пишите больше, пишите конкретнее.
Для тех кого интересует распознование речи:voxforge.org — opensource проект, нужны добровольцы, нужно наговаривать текст онлайн, прямо на странице. Многие opensource программы нуждаются в этой базе (например: Julius, Sphinx, HTK)
Отличная статья,)
Можно с библиографией ознакомиться?
Полную библиографию пока выкладывать не спешу, потому что, к сожалению, мой список составлен на конец 2006 г., в связи с чем, на текущий момент достаточно устарел…
Но к следующим статьям я буду прикладывать основные источники.
Но к следующим статьям я буду прикладывать основные источники.
Статья отличная!
Корректировка времени. Используется для обработки временной вариативности, возникающей при произношении слов (например, “растягивание” или “съедание” звуков).
Скинь ссылочку на что то по подробней по этому пункту!
Корректировка времени. Используется для обработки временной вариативности, возникающей при произношении слов (например, “растягивание” или “съедание” звуков).
Скинь ссылочку на что то по подробней по этому пункту!
Именно по этой теме, к сожалению, в свое время я достаточно полной информации найти не смог. В связи с этим пришлось довольствоваться «очевидным» алгоритмом, описанным в habrahabr.ru/blogs/artificial_intelligence/64594/#comment_1798446
Он показал очень хорошие результаты для моей задачи, в связи с чем я на нем и остановился.
Он показал очень хорошие результаты для моей задачи, в связи с чем я на нем и остановился.
Вместо того, чтобы показывать шоссе, по которому все прут не туда, куда полезнее и интереснее было бы предложить свою тропинку, если конечно она у вас есть.
Буду следить за темой. Филологу интересна техническая часть изучаемой проблемы.
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Распознавание речи. Часть 2. Типичная структура системы распознавания речи