All streams
Search
Write a publication
Pull to refresh
26
0
Send message
Поправьте если я заблуждаюсь, но Theano и так подтягивает CuDNN, если та в свою очередь правильно интегрирована в Cuda Toolkit. Во всяком случае я на свой машине этот флаг не использовал и Theano использовал CuDNN, о чем услужливо писал в логах.
Здравствуйте!
Вы не могли бы объяснить что за флажок такой из Вашего конфига: optimizer_including=cudnn?
Не могу его найти ни в каких мануалах. Благодарю заранее!
Здравствуйте! Интересная статья, затрагивающая многие практические проблемы, спасибо!

Не могли бы более подробно разъяснить алгоритм уточнения частоты основного тона? Предоставленное в статье описание оставляет массу моментов для вольной интерпретации :) Или, если нету времени, укажите пожалуйста где в коде проекта это реализуется? Буду бы весьма признателен!
Простите, что буду отвечать немного не по-порядку. Итак,

Если я правильно понял суть Ваших преобразований над спектром — Вы делали обыкновенную фильтрацию в частотной области. С помощью подобной операции действительно не так просто разрушить речевой сигнал до неузнаваемости. Если применялись мультипликативные изменения амплитуд вплоть до 10-20 раз, то это соответствует усилению или ослаблению сигнала на 10-13 дБ по амплитуде (20-26 по-мощности) — изменение весьма сильное, но не фатальное.

Анализ изменения амплитуд в спектре во времени производится в большом количестве работ по адаптивному шумоподавлению с 1 микрофоном, в работах, посвященных выделению отдельных дикторов из смешанного речевого сигнала, а также во многих работах, посвященных оценке и слежению за формантными частотами. Возможно там изменение амплитуд анализируется в несколько ином контексте, чем это предлагаете Вы, но сам факт анализа A(f,t) применяется во множестве работ.

Насчет распознавания речи — согласен, что в начальном формировании вектора фич для текущего анализируемого сегмента в классических подходах редко где фигурирует временной контекст. Но тут вопрос немного филосовский: если смотреть на систему распознавания в целом — то производится как раз контекстно-зависимый анализ, важно что было до и важно что идет после — на мой взгляд вполне подходит к понятию «анализ изменения во времени». Опять же если «расчленять» классическую систему распознавания и смотреть только на первичную обработку — соглашусь с Вами, что там контексту обычно уделяют значетельно меньше внимания.
Большое спасибо за такой развернутый рассказ! Вы затронули очень много интересных моментов, которые исследовались и исследуются многими!

Вы совершенно справедливо отметили, что именно «неровности» и «шероховатости» в вокализованном сигнале возбуждения делают из него живой человеческий голос, а не монотонный роботизированный звук. Тут конечно уже встает вопрос цели исследования — синтезировать разборчивую речь (что уже вполне возможно), либо синтезировать натурально звучащую речь, что пока ещё нельзя назвать решенной задачей. В обоих случаях, эта «линейная модель» (назовем пока так) играет весьма значитеьную роль. В первом — её одной уже вполне достаточно для синтеза вполне разборчивой речи. Конечно параметров там будет значительно больше, нежели рассказано в статье, но это проблема статьи :) Во втором случае — она играет незаменимую роль в качестве некоторой исходной «точки отсчета», если можно так выразиться. Она дает базовые соотношения, над которыми можно уже экспериментировать, ставить опыты, делать выводы. Тяжело искать отличия в множестве объектов не имея никакого эталона. Данная линейная модель звукообразования и может быть этим базовым, максимально упрощенным эталоном.

Насчет важности анализа не только мгновенных характеристик сигнала, но и их поведения во времени — тоже абсолютно правильно. Тут можно много привести примеров, но раз уж затронули вопросы распознавания — в задачах распознавания речи, насколько я могу судить, именно поэтому и нашли широкое применение скрытые модели Маркова, которые в том числе отражают статистику изменения состояний системы, а не только вероятности каких-то мгновенных её состояний. В то время как попытки распознавать отдельные фонетический единицы в изоляции пришли в тупик и имеют смысл только при работе с известным голосом.

К вопросу модификации амплитуд/фаз при обработке коротковременного спектра. Соглашусь с Вами, что фазы модифицировать можно самым причудливым образом. Конечно с условием, что работаем на коротких временных отрезках, даже не обязательно кратных периоду основного тона. Собственно именно на этом построен т.н. эффект «whisperization». Разборчивость речи при этом вполне сохраняется, хотя конечно человеческим голосом подобный звуки назвать язык не повернется :) Насчет амплитуд — уже не так все очевидно. Модифицируя амплитуды испортить разборчивость значительно проще. Согнасен, что менять их можно, согласен, что порой весьма сильно и смысл речи при этом можно будет разобрать. Но именно, что порой… Говорить, что можно с ними делать практически все, что угодно, и при этом речь останется разборчивой — в общем случае я бы не рискнул… Тут пожалуй стоит говорить о конкретной реализации и параметрах: что менялось, по какому закону, как часто, какой входной сигнал… Непростой вопрос, чтобы сразу на него ставить какие-то штампы…

Ещё раз большое спасибо за столь развернутый ответ!

Здравствуйте!

Спасибо за интерес к статье и Ваши комментарии! Из большого количества высказанных Вами мыслей позволю себе ответить лишь на некоторые, но перед этим хотел бы задать несколько вопросов. За одно Вы меня поправите, если я Вас не правильно понял :) итак…

1) «Разумеется, для этого вначале была решена задача качественного автоматического разбиения речи на однократные периоды колебаний, далее в рамках каждого периода — делалось Фурье, на результаты Фурье — накладывались разные воздействия ....»
Не совсем понимаю о каких «однократных периодах » идет речь. Имеете ли Вы ввиду частоту основного тона или что-либо другое? Если первое, то смысл дальнейших преобразований более-менее понятен. Если нет — не могли бы Вы более подробно объяснить, на какие именно сегменты вы делили входной речевой сигнал?

2) Изменения проводились только на вокализованных образцах речи? На каких языковых единицах проводились преобразования? Отдельные фонемы? Слова? Предложения?

3) Вы были единственным слушателем синтезированных Вами звуков?

4) "… при совершенно невероятных амплитудах коррекции (по отношению к исходным амплитудам) ..." не могли бы Вы привести какие-либо конкретные числа? Или хотя бы их порядок односительно исходных амплитудных значений.

Прошу не думать, что я пытаюсь Вас на чем-то подловить! Мне действительно хотелось бы понять что именно Вы делали и к каким результатам в итоге пришли!

Здравствуйте. Не смогу однозначно ответить на Ваш вопрос, поскольку не имею опыта в решении подобных задач. Позвольте внести свои «5 копеек». Опознавание языка диктора по записи фрагмента его речи — особая задача, которая решается не только силами одной фонетики, но с привлечением в первую очередь лингвистических знаний. Как и в остальных задачах распознавания, достигнуть 100% правильного результата не видится возможным. Некоторые авторы утверждают о достигаемой точности порядка 90% при поддержке вплоть до 12 языков и при анализе фрагмента речи буквально в несколько секунд. Конечно сразу возникают вопросы о базе, на которой проводилось тестирование, о качестве записи обрабатываемых сигналов и многие другие вопросы, сопутствующие НЕ лабораторному применению любой системы.
Немало работ можно найти просто набрав в Гугле automatic language indentification. А если заглянуть в первоисточники данных работ — информации для исследования станет ещё больше :)

Насчет «патернов» в произношении звуков, возможно процитировать Ирину Алдошину:
«Артикуляционные возможности речевого тракта при образовании звуков чрезвычайно разнообразны, и могут быть использованы для создания огромного многообразия звуков. Однако для речи используется ограниченный набор звуков (количество фонем в разных языках мира в основном не превышает 50…70). Такой разрыв между возможностями голосового аппарата и его применением объясняется с помощью квантальной теории, в соответствии с которой из всех звуков в речи используются только те, которые создают достаточно четкие слуховые контрасты и легко различимы слуховой системой (т.е. речь была приспособлена к слуху). Например, гласные „и“, „у“, „а“ резко контрастируют на слух, поэтому они используются почти во всех языках мира. Поэтому для разных звуков для речи были отобраны те виды артикуляции, которые создают существенные акустические и слуховые различия.»
Добрый день! merlin-vrn совершенно правильно изложил суть проблеммы. Если необходимо быстро и наглядно получить спектрограмму для анализа, audacity — вполне приемлемый софт. Самые базовые вещи, такие как длина окна анализа и тип оконной функции, audacity вполне позволяет выбрать, и тут уже все в руках инженера. Если анализировать речевой сигнал с частотой дискретизации 44 кГц, длина окна в 1024, либо 2048 самплов дает достаточно реалистичные результаты, позволяющие увидеть основные тенденции в изменении спектра сигнала.
В случае, если необходимо «дотошно» анализировать каждую гармонику и её поведение во времени, возможно использовать другие подходы к рассчету спектра (банки фильтров например) и выбирать меньший шаг во времени при рассчете спектрограммы. В данной работе такой цели не стояло.
Забыл ответить про софт. Для данной работы использовался Matlab, Audacity и OpenOffice Draw :) Опять же в Матлабе не применялось ничего такого, чего не было бы, скажем, в Octave.
Здравствуйте!

Я не являюсь специалистом по части распознавания и мои знания в данной области весьма ограничены. «На вскидку» можно сказать следующее:
1) Обработка во временной области как правило является вычислительно более дорогой.
2) Существуют алгоритмы обработки звука, работающие исключительно во временной области. Но там какого-либо серьезного распознавания звуков не делается, лишь решается вопрос «является ли текущий обрабатываемый сегмент вокализованным, либо нет?».
3) Сама процедура рассчета спектра подразумевает под собой интегрирование, и это позволяет получить усредненные оценки свойств сигнала на некотором интервале. Таким образом устраняются незначительные флуктуации анализируемого сигнала от «ожидаемого». Хорошо это или плохо — зависит от задачи.
4) Насколько я знаю, в алгоритмах распознавания очень важна размерность вектора характеристик, описывающих распознаваемый объект. Частотная область здесь пожалуй более удобна, т.к. позволяет более компактно описать основные свойства сигнала.

Большинство работ по разпознаванию, которые я видел, используют характеристики сигнала в частотной област (MFCC, LPC, кепстр, банки фильтров, etc). Есть работы, которые использую частотную область и при этом опираются на какие-то характеристики во временной области, что во многом оправданно. Работы, в которых используется исключительно временная область для решения задачи распознавания, мне лично не попадались. Но опять же, как было упомянуто, в этой области я не силен.

P.S. Гугл на запрос «time domain speech recognition» выдает ссылки на различные диссертации, но насколько эффективны данные методы мне сказать тяжело.
Здравствуйте!

Диссертационную работу сейчас к сожалению не пишу, надеюсь когда-нибудь дойти и до этого.

По-поводу заинтересовавшего Вас графика — конкретно данный график, и непосредственно за ним следующий были взяты с ресурса www.phys.unsw.edu.au/jw/glottis-vocal-tract-voice.html Я сначала забыл указать данный ресурс в первоисточниках — оплошность уже исправлена. В нашей компании нету исследовательской лаборатории с рабочим электроглатографом, а хотелось показать именно «живой», а не восстановленный сигнал. Ответить на Ваши вопросы касательно настройки измерительных приборов я к сожалению не смогу.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity