Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Владимирский государственный университет Х. М. АХМАД, В. Ф. ЖИРКОВ ВВЕДЕНИЕ В ЦИФРОВУЮ ОБРАБОТКУ РЕЧЕВЫХ СИГНАЛОВ Учебное пособие Владимир 2007 УДК 004.934 ББК 32.97 А95 Рецензенты: Доктор технических наук, профессор, зав. кафедрой биомедицинских технических систем Московского государственного технического университета им. Н.Э. Баумана И.Н. Спиридонов Доктор технических наук, профессор кафедры радиотехники и радиосистем Владимирского государственного университета А.К. Бернюков Печатается по решению редакционного совета Владимирского государственного университета Ахмад, Х. М. Введение в цифровую обработку речевых сигналов : учеб. поА95 собие / Х. М. Ахмад, В. Ф. Жирков ; Владим. гос. ун-т. – Владимир : Изд-во Владим. гос. ун-та, 2007. – 192 с. – ISBN 5-89368-751-5. Рассмотрены теоретические основы цифровой обработки речевых сигналов, в том числе их физические свойства и цифровое представление, спектральный и корреляционный анализ, базовые методы и алгоритмы цифровой фильтрации, специальные методы, используемые в системах анализа, синтеза и распознавания речи, методы кодирования. Изложение сопровождается примерами реализации в среде MATLAB. Пособие содержит лабораторный практикум, ориентированный на MATLAB. Предназначено для студентов 3 – 5-го курсов специальностей 230100 – информатика и вычислительная техника, 230101 – вычислительные машины, комплексы, системы и сети очной и заочной форм обучения. Может быть использовано студентами родственных специальностей. Табл. 3. Ил. 84. Библиогр.: 48 назв. УДК 004.934 ББК 32.97 © Владимирский государственный университет, 2007 ISBN 5-89368-751-5 2 Введение Цифровая обработка сигналов (ЦОС) – одно из наиболее перспективных и динамично развивающихся направлений современной науки и техники. К ее качественным преимуществам относят: реализуемость сложных (оптимальных) алгоритмов обработки с высокой точностью; программируемость и функциональную гибкость; возможность адаптации к обрабатываемым сигналам; возможность аппаратной реализации с использованием спецпроцессоров и чипсетов ЦОС. Области ее применения: радио- и телевизионные системы цифровой связи, системы сотовой связи, компьютерные сети, радио- и звуколокация, медицина, обработка изображений и потоков видеоданных, музыки, и др. ЦОС в сфере обработки и передачи речевых сигналов получила широчайшее распространение и продолжает интенсивно развиваться. Это обусловлено прогрессом в области сотовой и мобильной связи, других видов цифровой связи, IP-телефонии. Все более значимыми становятся результаты работ по распознаванию и синтезу речи. Изучение методов обработки речевых сигналов наиболее удобно с точки зрения учебного процесса. Каждый компьютер может быть оснащен звуковой картой, динамиком и микрофоном, что позволяет легко создавать звуковые файлы, а затем, выполнив обработку, воспроизводить результирующий файл и оценивать результаты обработки путем прослушивания. В то же время методы и операторы обработки речевых сигналов: оцифровкавосстановление, фильтрация, кодирование-декодирование, спектральные анализ и преобразования, распознавание и синтез – характерны и для других приложений ЦОС, конечно, с учетом прикладной области, поэтому изучение методов обработки звука может многому научить. Через обработку речи студенты получают базовые знания о методах ЦОС. Основное внимание в пособии уделено теоретическим основам обработки речевых сигналов. Каждый раздел авторы старались изложить в достаточном для понимания объеме, с приведением примеров практической реализации. 3 В качестве среды создания иллюстрирующих примеров выбран пакет MATLAB фирмы «The MathWorks», являющийся мировым стандартом в области научных и технических расчетов. Базовая библиотека MATLAB и пакет расширения Signal Processing содержат большое количество функций, позволяющих быстро и наглядно осуществлять и исследовать различные алгоритмы, связанные с ЦОС. Учебное пособие завершает лабораторный практикум из шести лабораторных работ. 4 Глава 1. РЕЧЕВОЙ СИГНАЛ 1.1. Речь и речевой сигнал Речь предназначена для общения. Возможности речи с этой точки зрения можно характеризовать по-разному. Один из количественных подходов основан на теории информации, разработанной К. Шенноном. В соответствии с этой теорией речь можно описать ее информационным содержанием, или информацией. Другой способ описания речи заключается в представлении ее в виде сигнала, т.е. акустического колебания. Речевое общение начинается с того, что в мозгу диктора возникает в абстрактной форме некоторое сообщение. В процессе речеобразования это сообщение преобразуется в акустическое речевое колебание. Сообщение, передаваемое с помощью речевого сигнала, – дискретно, т.е. может быть представлено в виде последовательности символов из конечного их числа. Звуковые символы, из которых составлен речевой сигнал, называются фонемами [39]. Речь с физической точки зрения состоит из последовательности звуков с паузами между их группами [20, 37, 44]. Схема речеобразования у человека представлена на рис. 1.1. Основной тон с гармониками Прерыватель Резонансы Шум Излучаемый звук Рис. 1.1. Схема речеобразования у человека При нормальном темпе речи паузы появляются между отрывками фраз. Как правило, слова произносятся слитно, хотя слушающий воспринимает слова по отдельности. При замедленном темпе речи, например при диктовке, паузы могут делаться между словами и даже их частями. Предлоги, союзы звучат всегда слитно с последующим словом [21]. 5 Один и тот же звук речи разные люди произносят по-разному. Произношение звуков речи зависит от ударения, соседних звуков и т. п. Но при всем многообразии в их произношении звуки являются физическими реализациями (произнесением) ограниченного числа обобщенных звуков речи (фонем). Фонема – это то, что человек должен произнести, а звук – то, что человек фактически произносит. Фонема по отношению к звуку речи играет ту же роль, что и образцовая буква по отношению к ее рукописной форме в конкретном написании. В русском языке насчитывается 42 основные и 3 неопределенные фонемы. Звуки речи делятся на звонкие и глухие. Звонкие звуки образуются с участием голосовых связок, в этом случае находящихся в напряженном состоянии. Под напором воздуха, идущего из легких, они периодически раздвигаются, в результате чего создается прерывистый поток воздуха. Импульсы потока воздуха, создаваемые голосовыми связками, с достаточной точностью могут считаться периодическими. Соответствующий период повторения импульсов называют периодом основного тона голоса T 0 , а обратную величину 1 T 0 – частотой основного тона. Если связки тонкие и сильно напряжены, то период получается коротким и частота основного тона высокой; для толстых, слабо напряженных связок – низкой. Частота основного тона для всех голосов лежит в пределах 70 – 450 Гц. При произнесении речи она непрерывно изменяется в соответствии с ударением, подчеркиванием звуков и слов, а также с проявлением эмоций (вопрос, восклицание, удивление и т. д.). Изменение частоты основного тона называется интонацией. У каждого человека свой диапазон изменения основного тона (обычно он бывает немногим более октавы) и своя интонация. Последняя имеет большое значение для узнавания говорящего [21, 32]. Основной тон, интонация, устный почерк и тембр голоса служат для опознавания человека, и степень достоверности такая же высокая, как по отпечаткам пальцев. Импульсы основного тона имеют пилообразную форму, и поэтому при их периодическом повторении получается дискретный спектр с большим числом гармоник (до 40), частоты которых кратны частоте основного тона. Огибающая спектра основного тона имеет спад в сто6 рону высоких частот с крутизной около 6 дБ/окт, поэтому для мужского голоса уровень составляющих на частоте 3000 Гц ниже их уровня на частоте 100 Гц примерно на 30 дБ. При произнесении глухих звуков связки находятся в расслабленном состоянии, поток воздуха из легких свободно проходит в полость рта. Встречая на своем пути различные преграды в виде языка, зубов, губ, он образует завихрения, создающие шум со сплошным спектром. Согласные по способу образования делятся на сонорные (л, ль, р, рь, м, мь, н, нь, й), щелевые (ж, з, зь, в, вь, ш, с, сь, ф, фь, х, хь), взрывные (б, бь, д, дь, г, гь, п, пь, т, ть, к, кь) и аффрикаты (ц, ч – комбинация глухих взрывных и щелевых). Гласных фонем всего шесть: а, о, у, э, и, ы (гласные е, я, ё, ю – составные из и краткого или мягкого знака и гласных э, а, о, у). По месту образования фонемы делятся на губные, зубные, небные, гортанные, передние и задние. При произнесении звуков речи язык, губы, зубы, нижняя челюсть, голосовые связки должны находиться для каждой фонемы в строго определенном положении или движении. Эти движения называют артикуляцией органов речи. При этом в речеобразующем тракте создаются резонансные полости, определенные для данной фонемы, а для слитного звучания фонем в речи – определенные переходы от одной формы тракта к другой. При произнесении звуков речи через речевой тракт проходит или тональный импульсный сигнал, или шумовой, или тот и другой вместе. Речевой тракт представляет собой сложный акустический фильтр с рядом резонансов, создаваемых полостями рта, носа и носоглотки, т. е. с помощью артикуляционных органов речи. Вследствие этого равномерный тональный или шумовой спектр превращается в спектр с рядом максимумов и минимумов. Максимумы спектра называют формантами, а нулевые провалы – антиформантами. Для каждой фонемы огибающая спектра имеет индивидуальную и вполне определенную форму. При произнесении речи спектр ее непрерывно изменяется, и образуются формантные переходы. Частотный диапазон речи находится в пределах 70 – 7000 Гц. 7 Звонкие звуки речи, особенно гласные, имеют высокий уровень интенсивности, глухие – самый низкий. Громкость речи непрерывно изменяется, особенно резко при произнесении взрывных звуков. Динамический диапазон уровней речи находится в пределах 35 – 45 дБ. Гласные звуки речи имеют в среднем длительность около 0,15 с, согласные – около 0,08 (звук п – около 30 мс). Звуки речи неодинаково информативны. Так, гласные звуки содержат малую информацию о смысле речи, а глухие согласные наиболее информативны (например, в слове «посылка» последовательность «о, ы, а» ничего не говорит, а «п, с, лк» дает почти однозначный ответ о смысле). Поэтому разборчивость речи снижается при действии шумов, в первую очередь из-за маскировки глухих звуков [6, 7, 8]. Известно, что для передачи одного и того же сообщения по телеграфу и по речевому тракту требуется различная пропускная способность. Для телеграфного сообщения достаточна пропускная способность не более 100 бит/с, а для речевого – около 100 000 бит/с (полоса равна 7 000 Гц, динамический диапазон 42 дБ, т.е. требуется семизначный код, откуда имеем 2 ⋅ 7000 ⋅ 7 = 98 000 бит/с), т.е. в 100 раз большая. Образование звуков речи происходит путем подачи команд к мускулам артикуляционных органов речи от речевого центра мозга. Общий поток сообщений от него составляет в среднем не более 100 бит/с. Вся остальная информация в речевом сигнале называется сопутствующей. Речевой сигнал представляет собой своего рода модулированную несущую. Его спектр p(ω)=E(ω)·F(ω), где E(ω) – спектр генераторной функции, т. е. импульсов основного тона или шума; F(ω) – модулирующая кривая фильтровой функции речевого тракта. Эта модуляция особая, спектральная. При ней несущая имеет широкополосный спектр, а в результате модуляции изменяется соотношение между частотными составляющими, т. е. изменяется форма огибающей спектра. Почти вся информация о звуках речи заключена в спектральной огибающей речи и ее временном изменении, частично – в переходах от тонального спектра к шумовому и обратно, по которым узнают о смене звонких звуков на глухие и обратно. Все эти изменения происходят медленно (в темпе речи). 8 Для воспроизведения речи достаточно передавать сведения о форме огибающей спектра речи и ее временном изменении в темпе смены звуков речи, а также об изменении основного тона речи и переходов тон-шум. Рассмотренные закономерности построения речи формируют сложный многочастотный сигнал, который нужно должным образом обработать для выделения информационной части. Для этого применяют различные методы и преобразования. 1.2. Цифровое представление речевых сигналов (дискретизация и квантование по уровню) 1.2.1. Цифровое представление Итак, частотный диапазон речи находится в пределах 70 – 7 000 Гц. При оценке уровня громкости звука в качестве эталона звукового давления P0 выбирается его минимальное значение на частоте 1 кГц, при котором звук становится уже слышимым, т.е. P 0= 2i10−5 Па. Уровень звукового давления определяется соотношением P L = 20 ⋅ lg , дБ , (1.1) P0 где P – значение звукового давления. Под динамическим диапазоном понимают отношение максимального и минимального уровней сигналов. Динамический диапазон речи составляет 35 – 45 дБ. Цифровая обработка требует представления аналогового речевого сигнала в цифровом виде. Перевод аналогового сигнала в цифровой выполняется специальным аналогово-цифровым преобразователем (АЦП). Основными характеристиками АЦП являются частота дискретизации f d ( f d = 1 Δ t ) и разрядность S, число возможных значений квантованного сигнала равно 2 N , где N – число разрядов. Чем выше разрядность АЦП, с тем большей точностью можно хранить сигнал, но тем медленнее он работает. Устройство, производящее обратную операцию (передача оцифрованного сигнала на какое-либо воспроизводящее устройство: динамик, телевизор и др.), называется цифроаналоговым преобразователем (ЦАП). Принципиальные схемы АЦП и ЦАП следует искать в специальной литературе по радиоэлектронике. 9 В результате аналогово-цифрового преобразования непрерывный сигнал переводится в ряд дискретных отсчетов Sk , каждый из которых представляет собой целое число, характеризующее аналоговый сигнал в этой точке с определенной точностью. Точность представления зависит от ширины диапазона получаемых чисел, а следовательно, от разрядности АЦП. Процесс разбиения сигнала на отсчеты носит название дискретизации. Число отсчетов в секунду называется частотой дискретизации f d , которая согласно теореме Котельникова должна быть, по крайней мере, в два раза выше максимальной частоты в спектре преобразуемого аналогового сигнала. Дело в том, что спектр сигнала, преобразованного с помощью АЦП в цифровую форму, имеет периодический характер. (Спектр сигнала – это его отображение, характеризующее интенсивность и распределение частотных составляющих сигнала.) Сигнал после АЦП имеет кроме низкочастотной части спектра, отображающей аналоговый сигнал, еще и высокочастотные компоненты: низкочастотный спектр сигнала повторяется в виде боковых полос с центрами в точках, кратных частоте дискретизации. При уменьшении частоты дискретизации произойдет наложение низкочастотной части спектра и боковой полосы с центром в точке f d . Наложение спектров приводит к появлению новых спектральных составляющих в сигнале, а значит, к его искажению. В звукозаписи наложение спектров можно убрать, установив перед АЦП фильтр низких частот, подавляющий все частоты, лежащие выше половины частоты дискретизации. Так как на практике нельзя выполнить фильтр с отвесным спадом частотной характеристики, значение частоты дискретизации выбирается несколько больше, чем удвоенное значение верхней частоты спектра речевого сигнала, например f d =22,05 кГц. Процесс дискретизации сигнала по уровню с округлением до разряда АЦП носит название квантования. Задав требуемый динамический диапазон цифровой системы звукозаписи, необходимое число разрядов квантования можно определить из выражения D = 6n + 1,8 , где D – динамический диапазон, дБ, n – число двоичных разрядов. Отсюда получаем, что для записи речи необходимо отводить не менее 8 бит на каждый отсчет. 10 Кадр X (длины N) – конечная последовательность отсчетов речевого сигнала S1,…, Sk ,…, S N . Реализация фразы – цифровая запись произнесения фразы в виде по(1) (t ) ( L ) , где L – длина реализаследовательности кадров X ,..., X ,..., X ции, X ( t ) = S ( t ) ,…, S ( t ) ,…, S ( t ) . N Длина кадра фиксирована, например 1 k N=256, что при частоте дискретизации f d =22,05 кГц соответствует периоду времени 11,6 мс. Цифровую информацию (речь) можно передать по линии связи практически без потерь. При передаче сигнал сначала превращается в аналоговый, пересылается, после чего опять оцифровывается. Если линия связи вносит искажения в сигнал меньше, чем шаг квантования, то после передачи и оцифровки полученный оцифрованный сигнал не будет отличаться от начального. Обычно же информация передается с помощью двоичных импульсов, т.е. для восстановления сигнала необходимо лишь решать, передали 1 или 0 . При передаче двоичной информации по линии связи, естественно, слегка смещается время прибытия импульса, но если смещение меньше расстояния между импульсами, то место импульса в общей последовательности легко восстанавливается. Дополнительную защиту дает применение кодов с устранением ошибок (коды Хэмминга, Рида – Соломона и др.) [25]. 1.2.2. Дискретизация В последнее время в технике идет переход на цифровые методы обработки информации. Это связано с тем, что цифровую информацию легче хранить (появились дешевые и удобные устройства для хранения информации, такие как жесткие диски компьютеров или лазерные диски), а также с тем, что цифровую информацию легко передавать по современным линиям связи практически без потерь. Аналоговый сигнал – это число S , зависящее от времени t . При записи информации на носитель или воспроизведении с него сигнал неизбежно искажается различного рода шумами. Восстановить искаженный сигнал (убрать шумы) нельзя. Можно, конечно, пытаться подавлять шумы, используя некоторую дополнительную информацию (например, можно подавлять частоты, в которых сосредоточены шумы), но при этом теряется и информация о самом сигнале, т.е. опять же вносятся искажения. При оцифровке сигнала S ( t ) производятся две операции – дискретизация и квантование. 11 Дискретизация – это замена сигнала S ( t ) с непрерывным временем ( ) t на дискретизованный сигнал, т.е. это последовательность чисел S ti для дискретного набора моментов времени t1, t2 ,…, ti (чаще всего интервалы между моментами времени Δ t = ti − ti −1 берутся одинаковыми). При дискретизации время становится цифровым, моменты времени ti можно нумеровать, кодировать. Производится замена непрерывного времени t на последовательность дискретных значений t1, t2 ,…, ti , а непрерывной (по времени и по уровню) функции сигнала S ( t ) (рис. 1.2, а) некоторым мно- ( ) жеством непрерывных (по уровню) функций S ti (рис. 1.2, б). S S S ( t3 ) S ( t3 ) S ( t2 ) S ( t4 ) S ( t1 ) S ( t2 ) S ( t1 ) S (t ) t1 t2 t3 S ( t4 ) t4 t а) t1 t2 t3 t4 t б) Рис. 1.2. Дискретизация по времени: а – аналоговый сигнал S ( t ) ; б – результирующий сигнал S ( ti ) При дискретизации часть информации о сигнале теряется. Но если сигнал S ( t ) за время Δ t не сильно изменяется, числа S ti и S ti − 1 близки друг к другу, то поведение S ( t ) между моментами времени ti и ( ) ( ) ti − 1 нетрудно восстановить (сигнал практически линейно изменяется во времени от S ti − 1 до S ti ). При дискретизации теряются составляющие ( ) ( ) сигнала с частотами порядка f d > 1 Δ t и выше. Дискретизация связана с некоторой погрешностью ε , которая зависит от шага дискретизации Δ t = ti − ti − 1 . При малых значениях шага дис- кретизации число точек замера велико, зато теряется мало информации. Обратная картина наблюдается при больших значениях шага дискретизации. Погрешность дискретизации ε в каждый момент времени t определяется по формуле 12 ε (t ) = S (t ) − V (t ) , (1.2) где V ( t ) – функция восстановления, которая по дискретным значениям восстанавливает S ( t ) . Виды дискретизации различаются по регулярности отсчетов: − равномерная дискретизация, когда Δt постоянно; − неравномерная дискретизация, когда Δt переменно, причем этот вид в свою очередь делится: – на адаптивную, когда Δt меняется автоматически в зависимости от текущего изменения сигнала. Это позволяет увеличивать шаг дис- кретизации, когда изменения сигнала S ( t ) незначительны, и уменьшать – в противном случае; – программируемую, когда Δt изменяется оператором или в соответствии с заранее выставленными условиями, например в фиксированные моменты времени. Частота Найквиста. Гармонический сигнал может быть адекватно представлен дискретными отсчетами, если его частота не превышает половины частоты дискретизации. Эта частота называется частотой Найквиста (Nyquist frequency f N = f d 2 =1 ( 2T ) , ω N = ωd 2 = π T ) [40, 43]. В зависимости от соотношения между частотой дискретизируемого гармонического сигнала и частотой Найквиста возможны три случая. 1. Если частота гармонического сигнала меньше частоты Найквиста, то дискретные отсчеты позволяют правильно восстановить аналоговый сигнал (рис. 1.3, а). 2. Если частота гармонического сигнала равна частоте Найквиста, то дискретные отсчеты позволяют восстановить аналоговый сигнал с той же частотой, но амплитуда и фаза восстановленного сигнала (он показан пунктирной линией) могут быть искажены (рис. 1.3, б). 3. Если частота гармонического сигнала больше частоты Найквиста, восстановленный по дискретным отсчетам аналоговый сигнал (он показан пунктирной линией) будет также гармоническим, но с иной частотой (рис. 1.3, в). Данный эффект носит название появление ложных частот (aliasing). 13 а) б) в) Рис. 1.3. Дискретизация гармонических сигналов с разной частотой Теорема Котельникова. Любой сигнал S ( t ) , спектр которого не со- держит составляющих с частотами выше некоторого значения ω B = 2π f B , может быть без потерь информации представлен своими дискретными отсчетами { S ( kT ) }, взятыми с интервалом Т, удовлетворяющим следующему неравенству: 1 π T ≤ = . 2 fB ωB (1.3) Данная теорема называется теоремой Котельникова (в зарубежных источниках – теоремой Найквиста, или теоремой дискретизации (sampling theorem)) [43, 45]. Восстановление исходного непрерывного сигнала S ( t ) по набору его дискретных отсчетов { S ( kT ) } производится по следующей формуле: ∞ (1.4) ∑ S ( kT ) ϕ k ( t ) . k = −∞ Данная формула представляет собой разложение сигнала S ( t ) в ряд S (t ) = по системе функций {ϕ k ( t )} , называемой базисом Котельникова: ⎛ t − kT sin ⎜π T ⎝ ϕ k (t ) = t − kT π T ⎞ ⎟ ⎠. (1.5) 14 Формирование непрерывного сигнала по его дискретным отсчетам поясняет рис. 1.4. Пунктирными показаны графики отдельных слагаемых формулы (1.3), сплошной линией – восстановленный сигнал. Ниже приведен код MATLAB, использованный при построении рисунка [7]. >> t=-2:0.01:6; % время для восстановленного сигнала >> td=-2:6; % номера отсчетов >> s=[0 0 4 3 2 1 0 0 0]; % дискретный сигнал >> d=[td' s']; % данные для функции pulstran >> y=pulstran(t, d, 'sinc'); % восстановленный сигнал >> plot(td, s, 'O', t, y); % график восстановленного сигнала >> hold on % вывод графиков отдельных sin-импульсов >> for k=1:length(s), plot(t, s(k)*sinc(t-td(k)), ':'), end; hold off В данном коде использована функция pulstran, которая позволяет сформировать сигнал в виде суммы конечного числа импульсов произвольной формы с заданными задержками и множителями, что делает ее очень удобной при построении графиков сигналов, восстановленных по дискретным отсчетам согласно теореме Котельникова. Рис. 1.4 наглядно демонстрирует главное свойство сигнала с ограниченным спектром – его бесконечность во времени. Хотя отличны от нуля лишь несколько отсчетов показанного сигнала, аналоговый сигнал оказывается бесконечно колеблющимся: между нулевыми отсчетами (на рис. 1.4 это отсчеты –2, –1, 4, 5, 6 ) его значения отличны от нуля. Эти колебания нигде не заканчиваются, хотя их амплитуда стремится к нулю. Рис. 1.4. Восстановление непрерывного сигнала по его дискретным отсчетам 15 Когда говорят об ограниченной полосе частот сигнала, имеется в виду спектральная функция всего сигнала, имеющего бесконечную длительность. При этом мгновенные спектры отдельных фрагментов сигнала могут содержать сколь угодно высокие частоты. Под мгновенным спектром подразумевается спектральная функция «вырезанного» из сигнала фрагмента конечной длительности. В частности, в отдельном промежутке между соседними отсчетами сигнал с ограниченным спектром может иметь сколь угодно сложную форму, например произвольное число раз менять знак. Примеры восстановления сигналов приведены в [43]. Изменение частоты дискретизации. При решении различных задач обработки сигналов приходится увеличивать или уменьшать частоту дискретизации сигналов. Это необходимо, например, для согласования различных стандартов хранения и передачи дискретной информации [43]. Классический пример – преобразование аудиозаписей между форматом компакт-дисков ( f d = 44,1 кГц) и форматом цифровой магнитной записи R DAT ( f d = 48 кГц). Приведенный пример не относится к самым простым, поскольку коэффициент изменения частоты дискретизации не является целым числом. В зависимости от значения этого коэффициента выделяют следующие варианты обработки данных. 1. Интерполяция (interpolation) – повышение частоты дискретизации в целое число раз. При интерполяции необходимо повысить частоту дискретизации в N раз, т.е. растянуть входной сигнал, а образовавшиеся промежутки между отсчетами заполнить. Например, при повышении частоты дискретизации в два раза, необходимо между каждой парой отсчетов исходного сигнала «нарисовать» новый отсчет, используя при этом информацию об окружающих отсчетах. В программе MATLAB этому способу соответствует функция interp. В простейшем случае синтаксис функции таков: y=interp(x,r), где r – кратность увеличения частоты дискретизации. Для интерполяции в данном случае используется нерекурсивный фильтр с линейной ФЧХ. По умолчанию порядок фильтра равен 8r, т.е. фильтр в каждый момент ис16 пользует восемь отсчетов входного сигнала. Частота среза фильтра по умолчанию равна половине исходной частоты Найквиста. 2. Прореживание (decimation) – понижение частоты дискретизации в целое число раз. В задачах распознавания речи весьма актуальна проблема рационального выбора частоты дискретизации f d . Поскольку полоса частот речевых сигналов ограничена сверху 3 – 3,5 кГц, рациональным было бы значение f d = 8...10 кГц. Между тем зачастую оказывается, что речевой сигнал уже дискретизирован с намного более высокой частотой, рассчитанной на сигналы музыкальной природы, т.е. f d = 44 … 48 кГц. Очевидно, что целесообразно «проредить» сигнал, оставляя лишь каждый, например, 6-й отсчет исходного сигнала. В результате f d понизится с 44,1 до 8 кГц. Перед прореживанием нужно дополнительно отфильтровать частоты речевого сигнала, превышающие значение 3,5 кГц. В программе MATLAB прореживание выполняется с помощью функции decimate. Синтаксис ее вызова следующий: y = decimate(x, r), где x – входной сигнал, r – целочисленный коэффициент понижения частоты дискретизации, y – прореженный сигнал. При этом по умолчанию используется ФНЧ Чебышева 1-го рода 8-го порядка с уровнем пульсаций в полосе пропускания 0,05 дБ и частотой среза, равной 0,8 новой (после прореживания) частоты дискретизации. Заметим, что синтаксис функции decimate позволяет управлять характеристиками фильтра и при понижении частоты дискретизации в целое число раз уменьшается число отсчетов, содержащихся в сигнале (на число, равное числу раз понижения частоты дискретизации). 3. Передискретизация (resampling) – изменение частоты дискретизации в произвольное (в общем случае дробное) число раз. Классическим примером, когда нужно изменить частоту дискретизации в нецелое число раз, является переход от частоты 48 кГц, принятой в качестве стандарта цифровой магнитной записи, к частоте 44,1 кГц, принятой для компакт-дисков (либо обратный переход). Воспользуемся парой уже известных нам функций: y=decimate(interp(x, r), q), 17 в результате чего получим процесс y с частотой дискретизации p Fd′ = Fd . q Однако в программе MATLAB для этой цели предусмотрена специальная функция resample: y=resample(x, p, q); где х – исходный сигнал, p и q – числитель и знаменатель дробного коэффициента изменения частоты дискретизации, y – передискретизированный сигнал. 1.2.3. Квантование Для преобразования аналогового сигнала в дискретный используется процедура, называемая квантованием. Квантование сигнала – это процедура, похожая на дискретизацию, только проводимая не со временем, а со значением сигнала S . Выбирается ( ) некий набор возможных значений сигнала S1, S2 ,…, Sn и каждое S ti сопоставляется с ближайшим числом из этого набора. Иногда, чтобы внести в сигнал минимальные искажения, квантование проводят так, что интервалы Δ S = Sn − Sn − 1 оказываются неравными (нелинейное квантование). Например, часто делают Δ S маленьким при малом значении сигнала, чтобы относительная погрешность (шум квантования/сигнал) не становилась очень большой при малых S . Нелинейное квантование позволяет получить при приемлемой точности хранения сигнала большой динамический диапазон (отношение максимального значения сигнала к минимальному или к величине кванта). Квантование по уровню – преобразование непрерывных (по уровню) ( ) сигналов S ti в моменты отсчета ti в дискретные. В результате непре- ( ) рывное множество значений сигнала S ti в диапазоне от Smin до Smax преобразуется в дискретное множество значений Sk – уровней квантования (рис. 1.5). Шаг квантования ΔS определяется по формуле ΔS = S j − S j − 1. 18 S (t ) S (t ) S ( t3 ) S ( t4 ) S ( t2 ) S ( t1 ) t1 t2 Smax S2 S1 Smin t3 t4 t S ( t3 ) S ( t2 ) S ( t1 ) t1 а) t2 t3 S ( t4 ) t4 t б) Рис. 1.5. Квантование по уровню: а – аналоговые дискретные по времени сигналы S t ; б – квантованные i ( ) ( ) по уровню сигналы S t i ( ) При квантовании по уровню не всегда сигнал S ti ( ) совпадает с уровнем квантования (см. сигнал S t2 на рис. 1.5, б). В таком случае поступают одним из следующих способов: 1) S ti отождествляют с ближайшим значением (в нашем примере – с S2 ); 2) ( ) S ( ti ) отождествляют с ближайшим меньшим (или большим) зна- чением. Отождествление не зависит от того, насколько близко к этому уровню квантования находится значение сигнала. Очевидно, что и при квантовании по уровню возникает погрешность квантования ε Sk : ( ) ε ( Sk ) = S ( ti ) − Sk . (1.6) Погрешность квантования по уровню тем меньше, чем меньше шаг квантования. Различают два вида квантования по уровню: 1) равномерное, когда диапазон изменения сигнала разбивается на m одинаковых частей. Тогда, зная размер шага квантования, для представления Sk достаточно знать число k . Другими словами, квантование с по- стоянным шагом ΔS называется равномерным; 2) неравномерное, когда диапазон изменения сигнала разбивается на m различных частей. Другими словами, квантование с изменяющимся шагом ΔS называется неравномерным [22]. 19 1.3. Технические и программные средства формирования аудиоданных Для обработки голоса необходимо предварительно записать его в оперативную память компьютера или на машинный носитель. Большинство персональных компьютеров оснащены оборудованием, необходимым для ввода и вывода звука. Это микрофон и звуковая плата. В общем виде процесс ввода речевых сообщений приведен на рис. 1.6. Речь Датчик звуковых колебаний Звуковая карта (АЦП) ЭВМ Рис. 1.6. Схема ввода речевых сообщений в ЭВМ Как известно, речевой сигнал формируется и передается в пространстве в виде звуковых волн. Источником речевого сигнала служит речеобразующий тракт, который возбуждает звуковые волны в упругой воздушной среде. Приемником сигнала является датчик звуковых колебаний, микрофон – устройство для преобразования звуковых колебаний в электрические. Существует большое количество типов микрофонов (угольные, электродинамические, электростатические, пьезоэлектрические и др.), описанных в специальной литературе. Чувствительный элемент микрофона любого типа – упругая мембрана, которая вовлекается в колебательный процесс под воздействием звуковых волн. Она связана с элементом, который преобразует колебания мембраны в электрический сигнал. С выхода микрофона сигнал подается на вход звуковой карты персонального компьютера. При записи звуковая карта представляет собой аналогово-цифровой преобразователь с широкими возможностями настройки параметров оцифровки, основными из которых являются частота дискретизации и разрядность кодирования. Данные параметры определяют качество и размер выборки, получаемой в результате записи. Причем размер и качество прямо пропорциональны, т.е. чем выше качество записи, тем больше ее размер. Существует огромное количество программных средств формирования аудиоданных. Все они отличаются друг от друга, как правило, пользовательским интерфейсом и функциональными возможностями, но в их основе лежит один и тот же принцип работы: запись, анализ, сжатие и очистка от шума сигнала. К таким средствам относятся: − Sound Forge – отличный звуковой редактор от компании «Sonic Foundry», сочетающий в себе мощь профессиональной дорогостоящей программы и простой пользовательский интерфейс; 20 − WaveLab – звуковой редактор, располагающий возможностями, которые позволяют работать с различной звуковой информацией; − CoolEdit 2000 – звуковой редактор фирмы «Syntrillium Software Corporation». 1.4. Запись и считывание данных из речевого сигнала в MATLAB В MATLAB предусмотрены средства для воспроизведения и записи звука (речи), а также для работы со звуковыми файлами формата wav [7, 43] . Чтение wav-файлов. Для считывания wav-файлов в MATLAB используется функция wavread. В простейшем случае она может быть использована следующим образом: y = wavread (‘filename’), где ‘filename’ – имя звукового файла (расширение wav указывать не обязательно). В имя файла необходимо включить полный путь, за исключением тех случаев, когда файл находится в текущем (для MATLAB) каталоге или в одном из каталогов, входящих в список поиска MATLAB. Другой способ, не требующий указания имени файла, – полный путь, который заключается в определении местонахождения файла на жестком диске с помощью меню MATLAB. В результате вызова функции в переменную y будет помещено все содержимое указанного файла. Строки матрицы y соответствуют отсчетам сигнала, столбцы – каналам, которых в wav-файле может быть один (моноканал) или два (стереоканал). Помимо отсчетов сигнала в wav-файлах хранится и служебная информация, которая содержит следующие параметры: − частоту дискретизации, для определения которой в указанную функцию необходимо включить второй выходной параметр: [y, Fs] = wavread (‘filename’), где Fs – частота дискретизации, Гц; − число бит на отсчет, для определения которого необходимо добавить еще один выходной параметр: [y, Fs, bits] = wavread (‘filename’); − число отсчетов и каналов записи. Для получения данной информации необходимо вызвать функцию wavread с двумя входными параметрами: именем файла и текстовой строкой ‘size’: wavesize = wavread (‘filename’, ‘size’). 21 При вызове такой функции из wav-файла извлекается служебная информация, которая возвращается в виде двухэлементного вектор-строки, первый элемент которого содержит число отсчетов, второй – число каналов; − продолжительность звучания сигнала (в секундах), которую можно определить следующим образом: wavesize (1)/Fs, где 1 указывает на первый параметр вектора wavesize. Имеются и возможности считывания данных из wav-файла не целиком, а отдельными фрагментами. Для этого используется второй входной параметр функции wavread. Если этот параметр является числом, будет считано соответствующее количество отсчетов, начиная с первого: y = wavread (‘filename’, N). Если нужный фрагмент расположен не в начале файла, придется указать его начало и конец: y = wavread (‘filename’, [n1, n2]). В результате в переменную y будут считаны отсчеты с номерами от n1 до n2 включительно (нумерация отсчетов начинается с единицы). Чтобы узнать объем памяти (в килобайтах), требуемый в MATLAB для хранения записи, необходимо использовать следующую функцию: prod (wavesize)*8/1024. Для просмотра речевого (звукового) сигнала выведем его в виде графика с помощью следующей функции: plot (y). Если необходимо вывести график по каналам стереозаписи, то применяют следующие функции: subplot (2, 1, 1); plot (:, 1); subplot (2, 1, 2); plot (:, 2) или просто plot(y). Если сигнал имеет большую длину, то можно использовать следующую функцию (фрагменты выводятся друг под другом): strips (x, N), где x – вектор отсчетов сигнала (двумерный массив не допускается), N – число отсчетов в каждом фрагменте (этот параметр можно опустить, по умолчанию размер фрагмента составляет 200 отсчетов). Запись wav-файлов. Для записи вектора (или матрицы) на диск в виде wav-файла используется функция wavwrite: wavwrite (y, Fs, N, ‘filename’), где y – записываемые данные, Fs – частота дискретизации, Гц, N – число бит на отсчет (8 или 16), ‘filename’ – имя создаваемого файла. Параметры Fs и N можно опускать, при этом используются значения по умолчанию: Fs = 8 000 Гц, N = 16. 22 Записываемые данные должны быть вещественными и лежать в диапазоне от –1 до 1. Значения, выходящие из этого диапазона, будут обрезаны и сделаны равными. Воспроизведение звуковых файлов. Если компьютер оборудован звуковой картой, то помимо работы с wav-файлами можно воспроизводить вектор и матрицу в звуковом в виде с использованием следующих функций: – sound, синтаксис которой записывается следующим образом: sound (y, Fs, bits), где y – вектор или двухстолбцовая матрица сигнала, Fs – частота дискретизации, Гц, bits – число бит на отсчет (8 или 16). Параметры Fs и bits можно опускать, при этом их значения будут приниматься по умолчанию. Выходных параметров y у функции нет. После вызова она передает вектор y звуковой карте для воспроизведения и сразу же, не дожидаясь окончания звука, возвращает управление MATLAB; – wavplay, синтаксис которой имеет следующий вид: wavplay (y, Fs, ‘mode’), где параметр mode управляет режимом воспроизведения, который может принимать два значения: − ‘sync’ – синхронный режим, означающий что функция вернет управление интерпретатору MATLAB только после окончание звука; − ‘async’ – асинхронный режим, при котором функция передает данные для воспроизведения звуковым драйверам Windows и сразу же возвращает управление системе MATLAB, не дожидаясь окончания звука. Параметры Fs и mode можно опускать, при этом их значения принимаются по умолчанию: Fs =11025 Гц и ‘mode’ = ‘async’. Запись звука (речи). Функция wavrecord позволяет записать звук в переменную MATLAB с помощью звуковой карты компьютера: y = wavrecord (n, Fs, ch, ‘dtype’), где n – число записываемых отсчетов, Fs – частота дискретизации, Гц, ch – число каналов записи, ‘dtype’ – тип записываемых данных. Возвращаемый результат y – матрица, каждый столбец которой соответствует одному каналу записи. При стереозаписи первый столбец – левый канал, второй – правый канал. Для параметра dtype возможны следующие значения: − ‘double’ – 16-битная запись, данные масштабируются к диапазону от –1 до 1 и представляются в восьмибайтовом формате с плавающей запятой; − ‘single’ – 16-битная запись, данные масштабируются к диапазону –1…1 и представляются в четырехбайтовом формате с плавающей запятой; 23 − ‘int16’ – 16-битная запись, данные представляются в двухбайтовом целочисленном формате (диапазон от –32 768 до 32 767); − ‘uint8’ – 8-битная запись, данные представляются в однобайтовом беззнаковом целочисленном формате (диапазон от 0 до 255, нулевому напряжению на входе соответствует значение «128»). Входные параметры Fs, ch, dtype можно опускать, при этом их значения будут приниматься по умолчанию: Fs =11 025 Гц, ch =1, dtype = =‘double’. 1.5. Параметры и информативные признаки речевого сигнала Любой речевой сигнал характеризуется некоторыми признаками, которые можно использовать для того, чтобы синтезировать исходный сигнал [31]. Информативные признаки 1. Энергия сигнала: t2 E ( X ) = ∫ S 2 (t ) dt , (1.7) t1 N E (Δt ) = ∑ X 2 (ti ) , i =1 где N – количество отсчетов. 2. Основная частота F T определяет длину речевого тракта. 3. Форманты F1, F2 , F3 (рис. 1.7). Е F0 F1 F2 F3 F4 Рис. 1.7. Схематическое представление формант сигнала 24 (1.8) F1 и F2 определяют концентрацию энергии речевого сигнала по частоте и характеризуют гласные звуки. Они используются для классификации гласных звуков. F3 характеризует свойства диктора. 4. Мгновенная частота – количество перехода сигнала через нуль, используется для классификации шумных звуков и гласных. 5. Мгновенная амплитуда сигнала Amax . Аналогичные признаки выделяются из речевого сигнала после его фильтрования по полосовым фильтрам. В результате получаются компактные речевые признаки входного сигнала. Объем необходимой памяти получается намного меньше. Основной тон T – очень полезный признак. Он используется при динамической сегментации входного сигнала, что приводит к более точной обработке входного сигнала. При распознавании речевых сигналов, как правило, оперируют не исходным речевым сигналом, а его параметрами, вычисленными на кадре. Длина кадра обычно выбирается такой, чтобы его длительность T = T v составляла 10 – 20 мс. Параметры речевого сигнала. Кадр длины N состоит из последовательности отсчетов S1,…, Sk ,…, S N . 1. Кратковременная энергия речевого сигнала 1 N 2 E= ∑ S . N k =1 k 2. Число нулей интенсивности 1 N Z = ∑ sign ( S k ) − sign ( S k − 1) , 2 k =2 (1.9) (1.10) ⎧ 1, S ≥ 0 где sign ( S ) = ⎨ – знаковая функция. 1, 0 − S < ⎩ 3. Коэффициенты разложения в ряд Фурье c0 , c1,…, c N / 2 . Кадр определяет функцию с периодом N , заданную на сетке из точек вида xl = l N : ( ) fl = f xl = Sk + 1, если l = N ⋅ t + k , где 0 ≤ k ≤ N − 1 , t – целое. Такую функцию можно разложить в ряд Фурье, т.е. представить в виде 25 N −1 (1.11) ∑ Aq ex p { 2π iq x l } . q=0 Скалярное произведение для функций на сетке определяется следующим образом: 1 N −1 (1.12) ( f, g) = ∑ f g . N l =0 l l fl = { } Функции g l = exp 2 π i q x при 0 ≤ q < N образуют ортонормироl ванную систему относительно введенного скалярного произведения (1.12). Коэффициенты Фурье можно найти по формуле 1 N −1 (1.13) Aq = f , g q = ∑ f exp { 2π iqx l } . N l =0 l Непосредственное осуществление этих преобразований требует O( N 2 ) арифметических операций. Для сокращения этого числа применя- ( ) ется алгоритм быстрого преобразования Фурье, основанный на том, что при N = 2m в слагаемых правой части выражения (1.13) можно выделить группы, входящие в выражения различных коэффициентов Aq . Вычисляя каждую группу только один раз, можно сократить число операций до O ( N ⋅ log 2N ) . Если N ≠ 2m , то можно добавить нулевые отсчеты. Разло- жение в ряд Фурье дает представление речевого сигнала в виде суммы гармонических колебаний с частотами v ( q ) . Запишем соотношение между частотой v ( q ) и индексом q : v ( q ) = q vd N = 2−m q vd при q = 0,1 ,…, N 2 , где vd – частота дискретизации. Значения спектра от q = N 2 + 1 до N −1 не содержат новой информации, так как значения f l действительны: при q = 0, 1,…, N 2 . Aq = AN − q Удвоенное значение Aq – это комплексная амплитуда. Вещественные амплитуды получаются из них по формулам c 0 = A 0 , cq = 2 Aq при q = 0,1,…, N 2 . 26 4. Распределение энергии сигнала по частотным группам P1,…, P20 . Одним из важнейших свойств слуха является разделение спектра звука на частотные группы. Слух может образовывать частотные группы на любом участке шкалы частот. В области частот ниже 500 Гц ширина частотных групп почти не зависит от средней частоты групп и составляет примерно 100 Гц. В области выше 500 Гц она увеличивается пропорционально средней частоте. Если частотные группы совместить в один ряд, то в диапазоне от 70 Гц до 7 кГц разместятся 20 частотных групп. Распределение энергии по частотным группам можно найти либо непосредственно с помощью гребенки соответствующих фильтров, либо с помощью коэффициентов разложения в ряд Фурье. Значение p i для частотной группы диапазона vi − 1... vi , шириной H i = vi − vi − 1 определяется по формуле ⎛1 n −1 ⎞ 2 ⎟. Pi = ⎜ (1.14) ∑ c ⎜ n j = 0 q 1+ j ⎟ ⎝ ⎠ 1.6. Особенности преобразования речевых сигналов в стандарте стандарте GSM В соответствии с рекомендацией СЕРТ 1980 г., касающейся использования спектра частот подвижной связи в диапазоне 862 – 960 МГц, стандарт GSM на цифровую общеевропейскую (глобальную) сотовую систему наземной подвижной связи предусматривает работу передатчиков в двух диапазонах частот: 890 – 915 МГц (для передатчиков подвижных станций – MS), 935 – 960 МГц (для передатчиков базовых станций – BTS) [6, 48]. В стандарте GSM используется узкополосный многостанционный доступ с временным разделением каналов (NB ТDМА). В структуре ТDМА кадра содержится восемь временных позиций на каждой из 124 несущих. Для защиты от ошибок в радиоканалах при передаче информационных сообщений применяется блочное и сверточное кодирование с перемежением. Повышение эффективности кодирования и перемежения при малой скорости перемещения подвижных станций достигается медленным переключением рабочих частот (SFH) в процессе сеанса связи со скоростью 217 скачков в секунду. Для борьбы с интерференционными замираниями принимаемых сигналов, вызванными многолучевым распространением радиоволн в условиях города, в аппаратуре связи используются эквалайзеры, обеспечивающие выравнивание импульсных сигналов со среднеквадратическим отклонением времени задержки до 16 мкс. 27 Система синхронизации рассчитана на компенсацию абсолютного времени задержки сигналов до 233 мкс, что соответствует максимальной дальности связи или максимальному радиусу ячейки (соты) 35 км. В стандарте GSM выбрана Гауссовская частотная манипуляция с минимальным частотным сдвигом (GMSK). Обработка речи осуществляется в рамках принятой системы прерывистой передачи речи (DTX), которая обеспечивает включение передатчика только при наличии речевого сигнала и отключение его в паузах и в конце разговора. В качестве речепреобразующего устройства выбран речевой кодек с регулярным импульсным возбуждением, долговременным предсказанием и линейным предикативным кодированием с предсказанием (RPE/LTR-LTP-кодек). Общая скорость преобразования речевого сигнала – 13 кбит/с. В стандарте GSM достигается высокая степень безопасности передачи сообщений; осуществляется их шифрование по алгоритму с открытым ключом (RSA). В целом система связи, действующая в стандарте GSM, рассчитана на ее использование в различных сферах. Она предоставляет пользователям широкий диапазон услуг и возможность применять разнообразное оборудование для передачи речевых сообщений и данных, вызывных и аварийных сигналов; подключаться к телефонным сетям общего пользования (PSTN), сетям передачи данных (PDN) и цифровым сетям с интеграцией служб (ISDN). Для аналогово-цифрового преобразования речевых сигналов в стандарте GSM используются АЦП. Рассмотрим кратко основные характеристики речевых сигналов (согласно МККТТ – Международный консультативный комитет по телеграфии и телефонии) в стандарте GSM и особенности их аналоговоцифрового преобразования [36]: − диапазон частот речевого сигнала ограничен: 300 – 3 400 Гц; − длительность звуков речевого сигнала составляет от нескольких десятков до нескольких сотен миллисекунд при среднем значении 130 мс; − для гласных звуков среднее значение длительности составляет 210 мс, для согласных – 92 мс; − спектр мощности речевого сигнала имеет максимум вблизи частоты 400 Гц и спадает на более высоких частотах со скоростью около 9 дБ на октаву; − при телефонном разговоре уровень речевого сигнала изменяется в диапазоне 35 – 40 дБ, при этом уровень согласных в среднем на 20 дБ ниже уровня гласных; 28 − в аналогово-цифровом преобразовании и цифровой обработке сигнала речи ограничиваются частотным интервалом обычного аналогового телефона 300 – 3 400 Гц, при этом при кодировании речевого сигнала учитывают квазистационарный гауссовский процесс, у которого спектрально-корреляционные характеристики постоянны на интервале 20 – 30 мс. Дополнительно следует отметить следующее: − слуховое ощущение громкости приблизительно пропорционально логарифму интенсивности ( ∼ ln I , где I – интенсивность звука); − пороговое для слуха изменение уровня звука не превышает 1 дБ; − человеческое ухо слабочувствительно к точности передачи фазовых соотношений спектральных составляющих сигнала; − постоянная времени слуха в среднем составляет: при нарастании сигнала 20 – 30 мс. Возвращаясь к процессу преобразования аналогового речевого сигнала в цифровую форму, рассмотрим более подробно особенности процессов дискретизации и квантования в стандарте GSM. Дискретизация речевого сигнала в стандарте GSM. На два входа дискретизатора подаются два сигнала: − U 1 ( t ) – аналоговый сигнал (речь); − U d ( t ) – сигнал от генератора тактовых импульсов. В соответствии с теоремой дискретизации (Котельникова – Шеннона), если для функции U 1 ( t ) спектральной составляющей наивысшей час- тоты является fвг , то мгновенные отсчеты, взятые с частотой 2 fвг , содержат в себе практически всю информацию исходного сообщения. Для телефонии, где речевой сигнал ограничен частотой f max = 3400 Гц, частоту дискретизации выбирают равной f d = 8000 Гц. Период дискретизации составляет Td = 1 f d = 125 мс. Таким образом, на выходе дискретизатора как умножителя сигналов получается сигнал U 2 ( t ) = U 1 ( t ) ⋅ U d ( t ) . Квантование сигнала U 2 ( t ) в стандарте GSM. В стандартных АЦП, используемых в цифровой телефонии, число уровней квантования (при приемлемом отношении сигнал-шум) выбирают равным 256 = 28, или больше. 29 В стандарте GSM используется восемь бит цифровой информации на один квантованный отсчет. Частота тактового генератора составляет 8 ⋅ 8 = 64 кГц , а период Tk = (1 64) ⋅ 103 = 15,625 мкс, т.е. сохраняется стандартная скорость передачи информации – 64 кбит/с по одному телефонному каналу. Следует отметить, что в системах мобильной сотовой связи стандарта GSM используется 16-битные сигма-дельта АЦП, при этом скорость выходного потока составляет 128 кбит/с. Преобразование цифрового потока, несущего информацию о речевых сигналах и поступающего из декодера речи, реализуется цифроаналоговыми преобразователями (ЦАП). Современные АЦП и ЦАП в мобильных станциях выполняются в виде интегральных микросхем. Широкое применение находят 16-битные АЦП и ЦАП, выполненные на одной интегральной микросхеме. Более подробно особенности схемного решения и принципы работы АЦП и ЦАП в системах мобильной связи можно найти в специальной литературе [18, 19]. Контрольные вопросы 1. Что такое речь и речеобразование? 2. Каково понятие речевого сигнала? 3. Что такое фонема и какие акустические фонемы есть в русском языке? 4. Что такое основной тон речевого сигнала и как он определяется? 5. Как определяется спектр речевого сигнала? 6. Какова частота дискретизации и как она определяется? 7. Как происходит процесс реализации фразы в речевом сигнале? 8. Что такое частота Найквиста и как происходит дискретизация речевого сигнала? 9. Что такое теорема Котельникова? 10. Какими функциями можно дискретизовать речевой сигнал в среде MATLAB? 11. Что такое квантование сигнала и какие существуют виды квантования? 12. Как происходит процесс ввода речевого сигнала в ЭВМ для его дальнейшей обработки? 30 13. Каковы функции обработки аудиосигнала в MATLAB? 14. Как определяются информативные признаки речевого сигнала? 15. Каковы параметры речевого сигнала? 16. Что такое стандарт GSM и как в нем осуществляется процесс речеобразования? 31 Глава 2. МЕТОДЫ АНАЛИЗА РЕЧЕВЫХ СИГНАЛОВ 2.1. Преобразование Фурье 2.1.1. Ряд Фурье Разложению в ряд Фурье могут подвергаться периодические сигналы. При этом они представляются в виде суммы гармонических функций либо комплексных экспонент с частотами, образующими арифметическую прогрессию. Для того чтобы такое разложение существовало, фрагмент сигнала длительностью в один период должен удовлетворять условиям Дирихле [43]: – не должно быть разрывов второго рода (с уходящими в бесконечность ветвями функции); – число разрывов первого рода (скачков) должно быть конечным; – число экстремумов должно быть конечным. В зависимости от конкретной формы базисных функций различают следующие представления ряда Фурье. Синусно-косинусная форма Функция x(t ) – периодическая с периодом T . Классическая синуснокосинусная форма представления этой функции в виде ряда Фурье имеет вид ∞ a x(t ) = 0 + ∑ ⎡⎣ a k cos(k ω1t ) + bk si n(k ω1t ) ⎤⎦ , (2.1) 2 k =1 2 T 2 ak = ∫ x(t ) cos(k ω1t )dt , T −T 2 2 T 2 bk = ∫ x(t ) sin(k ω1t )dt , T −T 2 2π где ω 1 = – «основная» частота ряда частот kω 1 гармоник, на которые T раскладывается сигнал x(t ) (рис. 2.1). 32 Достоинство такого представления – вещественность величин ak и bk . Недостаток – необходимость использования двух функций одной частоты sin(k ω 1 t ) и cos(k ω 1 t ) . x(t ) −T 2 0 ak bk t 0 1 2 3 k 0 1 2 3 T 2 Рис. 2.1. Графическое представление ряда Фурье Амплитудно-фазовая форма Запишем (2.1) в виде ∞ a0 x (t ) = + ∑ Ak cos(kω 1t + ϕ k ) 2 k =1 k (2.2) или ∞ ∑ ⎣⎡ Ak cos ϕ k cos (k ω 1 t ) − Ak si n ϕ k si n (k ω 1 t ) ⎦⎤ . 2 k =1 Сравнивая с (2.1), видим, что a k = Ak cos ϕ k ; bk = − Ak s i n ϕ k отx (t ) = a0 + куда Ak = a k2 + bk2 ; ⎛ b ϕ k = arctg ⎜ − k ⎜⎜ a k ⎝ ⎞ ⎛ ⎟ = −arctg ⎜ bk ⎟⎟ ⎜⎜ a ⎠ ⎝ k ⎞ ⎟. ⎟⎟ ⎠ Комплексная форма e jx + e− jx . В комплексной форме co s x = 2 Получаем ∞ Ak ⎡ kω1t + ϕ k a0 −k ω 1 t + ϕ k x (t ) = e e + ∑ + ⎢ 2 k =1 2 ⎣ ∞ kω t = ∑ C ke 1 ; k = −∞ 33 ⎤ ⎥= ⎦ (2.3а) Ck = = Ak 2 e jϕ k a b = k − j k = 2 2 1 T 2 1 T 2 x t k ω t dt j ( ) cos( ) − ∫ ∫ x(t ) sin (k ω 1t ) = 1 T −T 2 T −T 2 1 T 2 − j k ω1 t = dt. ∫ x (t ) e T −T 2 (2.3б) 2.1.2. Преобразование Фурье непериодических сигналов Преобразование Фурье (Fourier transform) – инструмент спектрального анализа непериодических сигналов [43]. При спектральном анализе непериодических сигналов формула для расчета коэффициентов комплексного ряда Фурье (2.3б) модифицируется следующим образом: – частота перестает быть дискретно меняющейся и становится непрерывным параметром преобразования ( k ω 1 заменяется на ω ); – удаляется множитель 1 T ; – результатом вычислений вместо нумерованных коэффициентов ряда Ck является функция частоты X (ω ) – спектральная функция сигнала x ( t ) . Иногда ее называют спектральной плотностью. В результате перечисленных модификаций формула (2.3б) превращается в формулу прямого преобразования Фурье (ППФ) ∞ (2.4) X (ω ) = ∫ x (t ) e − j ω t dt . −∞ В формуле самого ряда Фурье суммирование, естественно, заменяется интегрированием (и, кроме того, перед интегралом появляется деление на 2π ). Получающееся выражение называется обратным преобразованием Фурье (ОПФ) 1 ∞ jω t d ω . (2.5) x(t ) = ∫ X (ω )e 2π − ∞ Формулы ППФ (2.4) и ОПФ (2.5) называют парой непрерывных преобразований Фурье. Чтобы преобразование Фурье было применимо, должны выполняться условия Дирихле, а сигнал быть абсолютно интегрируемым. Это означает, что интеграл его модуля должен быть конечной величиной: 34 ∞ ∫ x (t ) dt < ∞ . −∞ Модуль спектральной функции называют амплитудным спектром, а ее аргумент – фазовым спектром. Итак, преобразование Фурье (2.4) ставит в соответствие сигналу, заданному во времени, его спектральную функцию. При этом осуществляется переход из временной области в частотную. Преобразование Фурье взаимнооднозначно, поэтому представление сигнала в частотной области (спектральная функция) содержит ровно столько же информации, сколько и исходный сигнал, заданный во временной области. 2.1.3. Связь между коэффициентами Фурье и спектром Перепишем соотношения (2.3а) и (2.3б) в виде [38] ∞ jk ω 1t , ∑ T Ck e 2π k = −∞ ω1 T 2 − jkω 1t TC k = dt . ∫ x (t ) e 2π − T 2 При ω1 → 0 эти соотношения превращаются в пару непрерывных преобразований Фурье, поэтому (2.6) TCk = X (ωk ) x (t ) = или ω1 1 1 2π k X (k ω 1 ) = X ( ). T T T Можно рассуждать и по-иному. Сравним соотношения Ck = − j k ω 1t 1 T 2 Ck = dt ; ∫ x(t )e T −T 2 ∞ − j k ω 1t X (ω k ) = ∫ x(t )e dt . −∞ Если функция x(t ) ∈ [ − T 2, T 2] , тогда, периодизируя ее, можно записать TCk = X (ωk ) , что совпадает с полученным ранее соотношением (2.6). Таким образом, с учетом соотношений (2.3а), (2.3б) и (2.6) можно записать 35 T 2 X (k Δ ω ) = ∫ x p (t )e − j k Δ ω t d t ; −T 2 ∞ Δω x p (t ) = X ( k Δ ω )e j k Δ ω t , ∑ 2π k = − ∞ где Δω = ω 1 . (2.7а) (2.7б) Сравнивая пары соотношений (2.4), (2.5) и (2.7а), (2.7б), видим, что последнюю можно формально и абсолютно точно получить, заменяя в (2.4) бесконечные пределы интегрирования на конечные, а в (2.5) – интеграл суммой. Причина точности произведенной замены – периодическое продолжение функции времени, приводящее к дискретизации спектра. Чтобы подчеркнуть периодический характер функции времени, мы применили обозначение x p (t ) . 2.1.4. Дискретное преобразование Фурье Используя дуальность времени t и частоты f , а также полученный выше результат о возможности формального перехода от пары непрерывных преобразований Фурье к паре дискретно-непрерывных преобразований Фурье, запишем [38] 1 π Δt x(n Δ t ) = X p (ω )e jω n Δ t d ω ; (2.8а) ∫ 2π − π Δ t ∞ X p (ω ) = Δ t ∑ x ( n Δ t ) e − jω n Δ t . (2.8б) n = −∞ Продолжая развивать идею «дискретизации-периодизации», приходим к паре дискретных соотношений 2π −j kn N −1 N X p ( k Δ f ) = Δ t ∑ x p ( n Δ t )e ; n=0 2π j kn N −1 N x p ( n Δ t ) = Δ f ∑ X p ( k Δ f )e , n=0 f T 1 где N = = = d (рис. 2.2). Δt Δf Δt Δf 36 Обозначая X d = X p (k Δf ) Δt , получим «классическую» пару дискретных преобразований Фурье (ДПФ): 2π −j kn N −1 N X d ( k ) = ∑ x p ( n )e ; (2.9а) n=0 2π j kn N − 1 1 N ( ) x p ( n) = X k e . (2.9б) ∑ N n=0 d Со свойствами преобразования Фурье можно ознакомиться в литературе по ЦОС, например [43]. x (t ) Δf Δt 0 - fB t T = N Δt X (ω ) fB f f d = N Δf Рис. 2.2. Графическое представление дискретизации-периодизации 2.1.5. ДПФ гармонического сигнала Последовательность отсчетов гармонического сигнала x(t ) = A cos 2π f0t , взятых в дискретные моменты времени t = nΔt , имеет вид x n = x(nΔ t ) = A c o s (2π f 0nΔ t ) . (2.10) ДПФ гармонического сигнала нулевой частоты (постоянной составляющей) имеет вид N −1 ⎧ N A, r = 0, 2π X d (r Δ ω ) = A ∑ e x p (− j r n) = ⎨ N ⎩ 0, д л я д р у г и х r. n=0 (2.11) Графики сигнала и его ДПФ для случая N = 8 приведены на рис. 2.3 [38]. 37 Рассмотрим ДПФ гармонического сигнала на интервале наблюдения целого и дробного числа периодов. Целое число периодов Для гармонического сигнала ненулевой частоты x n = c o s (2π f 0nΔ t ) = = A [ e x p ( j 2π f 0nΔ t ) + e x p (− j 2π f 0nΔ t ) ] . 2 ДПФ сигнала 2 1 0 уровень амплитуда сигнал (2.12) 0 1 2 3 4 5 6 7 номера отсчетов 10 5 0 0 1 2 3 4 5 6 7 номера отсчетов а) б) Рис. 2.3. Графики сигнала и его ДПФ для случая N = 8 ДПФ сигнала (2.12) имеет вид ⎧N − 1 ⎡ 2π ⎤ ⎫ n(r − f 0 N Δ t ) ⎥ + ⎪ ⎪ ∑ e x p ⎢− j N ⎣ ⎦ ⎪ A ⎪n = 0 Xr = ⎨ ⎬. 2 ⎪ N −1 ⎡ 2π ⎤ ⎪ ⎪ + ∑ e x p ⎢⎣ − j N n(r + f 0 N Δ t ) ⎥⎦ ⎪ ⎩ n=0 ⎭ (2.13) Для целых значений r ′ = f0 N Δt = T T0 из (2.13) получим ⎧ AN , r = r ′, r = N − r ′, ⎪ Xr = ⎨ 2 ⎪⎩ 0, д л я д р у г и х r 0 < r ≤ N − 1 . (2.14) Однако при дробных значениях r ′ соотношение (2.14) не выполняется. Дробное число периодов При целом значении параметра r ′ = f 0 N Δt = T T0 все значения ДПФ, кроме двух (соответствующих положительной и отрицательным частотам гармоники), равны нулю. 38 Однако если параметр r ′ = f 0 N Δt = T T0 принимает дробные значения, когда на интервале наблюдения T не укладывается целое значение периодов T0 = 1 f 0 , тогда картина усложняется – теперь практически все отсчеты ДПФ оказываются отличными от нуля. Чтобы объяснить это явление, вспомним о тесной связи между ДПФ [38] N −1 2π (2.15) X d (r Δ ω ) = ∑ x(n Δ t ) e x p (− j r n) N n=0 и дискретно-непрерывным ПФ N −1 X d (ω ) = ∑ x(nΔ t ) e x p (− jω nΔ t ) . (2.16) n=0 Подставляя (2.12 ) в (2.16), получим ⎧N −1 ⎫ j n t exp[ − ( − ) Δ ] + ω ω ⎪ ∑ ⎪ 0 A ⎪n = 0 ⎪ A X d (ω ) = ⎨ (2.17) ⎬ = Σ1 + Σ 2 . 2 ⎪ N −1 2 ⎪ j n t + − + Δ exp[ ( ) ] ω ω ∑ 0 ⎪ ⎪ ⎩ n=0 ⎭ Здесь выражение Σ 1 = 1 + e x p [− j (ω − ω 0 )Δ t ] + e x p [− j (ω − ω 0 )2Δ t ] + . . . (2.18) + e x p [− j (ω − ω 0 ) ( N − 1)Δ t ] ( ) представляет собой сумму членов геометрической прогрессии a i = a 0 g i , i = 0,1, … , где a0 – начальный член, g – знаменатель прогрессии, вычисляемую по известной формуле m a − amg . (2.19) s m = ∑ ai = 0 1 − g i =0 Подставляя в (2.19) a 0 = 1; m = N − 1; g = e x p [− j (ω − ω 0 )Δ t ] ; , a m = e x p [− j (ω − ω 0 ) ( N − 1)Δ t ] , получим Σ1 = 1 − e x p [− j (ω − ω 0 ) N Δ t ] = 1 − e x p [− j (ω − ω 0 )Δ t ] N Δ t] ( N − 1) 2 = e x p [− j (ω − ω 0 ) Δ t] ⋅ . Δt 2 s i n [ (ω − ω 0 ) ] 2 s i n [ (ω − ω 0 ) 39 (2.20) Аналогично N Δt ] ( N − 1) 2 . (2.21) Σ 2 = exp[− j (ω + ω 0 ) Δt ] ⋅ Δt 2 sin[(ω + ω 0 ) ] 2 Из (2.17) с учетом (2.20) – (2.21) получим выражение для модуля ПФ дискретизированного гармонического сигнала: N si n[(ω − ω0 ) Δ t ] 2 + Δt si n[(ω − ω0 ) ] A 2 . (2.22) | X d (ω) |= N 2 si n[(ω + ω 0 ) Δ t ] 2 + exp[− jω 0 ( N − 1)Δ t ] ⋅ Δt si n[(ω + ω 0 ) ] 2 Вводя безразмерные переменные r = f Δ f = f T = f N Δ t ; r0 = f 0 Δ f = f 0T = f 0 N Δ t , (2.23) получаем удобное для построения графиков выражение s i n [π (r − r0 ) ] + ⎡ ( r − r0 ) ⎤ s i n ⎢π N ⎥⎦ ⎣ A . (2.24) | X d (r ) |= 2 r r + s i n [ ( ) ] π 1 ⎡ ⎤ ⎛ ⎞ 0 + e x p ⎢ − j 2π r0 ⎜ 1 − ⎟ ⎥ ⋅ N ⎠⎦ ⎡ (r + r ) ⎤ ⎝ ⎣ s i n ⎢π N ⎥⎦ ⎣ Приведем примеры графиков функции X (r ) при A = 1; N = 8 и r0 = 0, 1, 1, 5 (рис. 2.4). Рисунки 2.4, а, б носят более общий характер: наличие на этих рисунках координатной сетки, вертикальные линии которой соответствуют целочисленным значениям r = f Δf , позволяет легко объяснить ситуацию на рис. 2. 4, в с дробным значением относительной частоты r0 = f 0 Δ f гармонического сигнала. Спектральный пик в последнем случае расположен в промежутке между узлами сетки частот, образованной целочисленными значениями r = f Δf . Это значит, что ДПФ гармонического сигнала с дробным значением относительной частоты r0 = f 0 Δ f состоит из множества отсчетов. Максимальные отсчеты при этом, как и следовало ожидать, соответствуют ближайшим (слева и справа) целым значениям r = f Δf . sin[(ω + ω 0 ) 40 8 X ( r) 0 10 9 8 7 6 5 4 3 2 1r 0 1 2 3 4 5 6 7 8 9 10 а) r = 0 0 4.09 X( r ) 0 10 9 8 7 6 5 4 3 2 1r 0 1 2 3 4 5 6 7 8 9 10 б) r = 1 0 4 X( r ) 0 10 9 8 7 6 5 4 3 2 r1 0 1 2 3 4 5 6 7 8 9 в) r = 1,5 0 Рис. 2.4. График функции X (r ) 2.1.6. Быстрое преобразование Фурье Пару ДПФ часто записывают в виде N −1 ⎧ kn A = ∑ X nW , k = 0,…, N − 1, ⎪ k ⎪ n=0 ⎨ 1 N −1 ⎪ −kn , n = 0,…, N − 1, = X ⎪ n N ∑ Ak W k =0 ⎩ где W = exp ( − 2π j N ) , X n = rep N X (nΔt ) – отсчеты (2.25) сигнала, Ak = rep N F (k Δf ) Δt – коэффициенты ДПФ. Для вычисления одного элемента последовательности 2 Ak , k = 0,…, N − 1, необходимо примерно N операций комплексных умножений и сложений. Число операций возрастает пропорционально квадрату размерности ДПФ [43]. Однако если N не является простым числом и может быть разложено на множители, процесс вычислений можно ускорить, разделив анализируемый набор отсчетов на части, вычислив их ДПФ и объединив результаты. Такие способы вычисления ДПФ называются быстрым преобразованием Фурье (БПФ; Fast Fourier Transform, FFT). Пре41 имущества алгоритма БПФ особенно проявляются с ростом N , что существенно при обработке массивов большой размерности [38]. Существует несколько разновидностей алгоритма БПФ. Изложим две модификации: с прореживанием по времени и по частоте. Прореживание по времени Разделим последовательность X n , состоящую из N отсчетов, на две подпоследовательности Yn и Z n , каждая из которых включает N 2 отсчетов (рис. 2.5). Рис. 2.5. График последовательностей X n , Yn и Z n Отсчеты Yn образованы из четных отсчетов исходной последовательности X n , а отсчеты Z n – из нечетных: N (2.26) − 1. Y n = X 2 n , Z n = X 2 n +1 , n = 0,1, 2, … , 2 Поскольку подпоследовательности Yn и Z n состоят из N 2 отсчетов каждая, ДПФ для них имеет вид ( N 2) − 1 ⎫ Bk = Y nW 2k n , ⎪ ∑ ⎪ n=0 (2.27) ⎬ k = 0,1, … , N − 1. ( N 2) − 1 ⎪ Ck = Z nW 2k n , ⎪ ∑ n=0 ⎭ 42 Необходимо найти последовательность Ak , которую можно представить через четные и нечетные элементы исходной последовательности X n : ( N 2) − 1 Ak = (YnW 2kn + Z nW k (2n + 1) ) = ∑ n=0 N = Bk + W k Ck , при 0 ≤ k ≤ − 1. 2 (2.28) Поскольку Bk и Ck периодичны с периодом N 2 , можем записать N Ak + N 2 = Bk + W k + N 2 C k = Bk − W kC k п р и 0 ≤ k ≤ − 1. (2.29) 2 Таким образом, первые N 2 и последние N 2 отсчетов ДПФ от X n могут быть получены комбинацией отсчетов ДПФ двух подпоследовательностей Yn и Z n . На рис. 2.6 показан сигнальный граф, наглядно представляющий процедуру конструирования отсчетов Ak из отсчетов Bk и Ck для случая N = 8 . x 2 = y1 x 2 = y1 B0 ДПФ (N=4) B1 x4 = y 2 B2 x6 = y3 B3 C0 x1 = z0 x3 = z1 C1 ДПФ (N=4) C2 x5 = z2 C3 x7 = y 3 A0 W0 A1 W1 A2 W2 A3 W3 A4 W4 A5 W5 W6 A6 A7 W7 Рис. 2.6. Сигнальный граф, представляющий процедуру конструирования отсчетов A из отсчетов B и C для случая N = 8 k k k 43 Поскольку удалось задачу вычисления N-точечного ДПФ редуцировать к задаче вычисления двух N 2 -точечных ДПФ, естественно попытаться «развить» успех в данном направлении. На рис. 2.7 показаны два следующих аналогичных шага, после которых отсчеты сигнала X n оказываются связанными с коэффициентами ДПФ Ak своеобразными нитямиоперациями, похожими на «бабочку». Итак, для случая N = 2 3 = 8 вычисления совершаются в три этапа. На первых двух этапах находят некие «промежуточные» массивы из восьми точек каждый. На третьем этапе вычисляется «окончательный» восьмиточечный массив. Для определения каждого элемента из этих трех массивов необходимо выполнить одно комплексное умножение и одно комплексное сложение. Итого получается 3 ⋅ 8 = 24 комплексных умножений и сложений вместо 8 ⋅ 8 = 64 при «лобовых» вычислениях. Обобщая рассуждения на случай N -точечных массивов, заключаем, что для вычислений в соответствии с алгоритмом БПФ необходимо N log 2 N комплексных умножений и сложений, тогда как при прямых вычислениях требуется N 2 операций. Прореживание по частоте Как и прежде, разделим последовательность X n на две подпоследовательности Yn и Z n , каждая из которых включает N 2 отсчетов. Однако теперь Yn будет состоять из первых N 2 отсчетов, а Z n – из последних N 2 отсчетов N Yn = X n , Z n = X n + N 2 , n = 0, 1, 2,…, − 1 . 2 Тогда N ⎞ ⎛ k (n + ) ⎟ ( N 2) − 1 ⎜ kn + Z W 2 Ak = ∑ ⎜ Y nW ⎟= n n=0 ⎜ ⎟ ⎝ ⎠ N ⎞ ⎛ k ⎟ ( N 2) − 1 ⎜ 2 W k n , 0 ≤ k ≤ N − 1. = ∑ ⎜ Y n + Z nW ⎟ n=0 ⎜ ⎟ ⎝ ⎠ 44 (2.30) (2.31) B0 X0 X4 ДПФ (N=2) W0 X6 ДПФ (N=2) B2 A3 B3 W3 C0 ДПФ (N=2) W0 W2 X3 W4 ДПФ (N=2) C1 C2 C3 W0 A6 W6 A7 W7 W4 W4 W4 A3 A4 W4 W2 W0 A2 W3 W0 W4 W1 W2 W6 W0 X3 W0 A1 W2 W0 X1 X7 W0 W4 X2 X5 A5 W5 A0 X0 X6 A4 W4 W6 X4 A2 W1 W6 X5 A1 W2 W4 X1 X7 W0 B1 W2 X2 A0 W5 W4 W6 W6 W7 A5 A6 A7 Рис. 2.7. Связь отсчетов сигнала X n с коэффициентами ДПФ Ak 45 Теперь рассмотрим четные и нечетные отсчеты массива Ak , т.е. осуществим прореживание по частоте: N Rk = A2k , Sk = A2k + 1, k = 0, 1, 2,…, − 1 . 2 (2.32) Тогда для четных отсчетов ( N 2) − 1 N R k = A 2k = Y n + Z n W 2k n , 0 ≤ k ≤ − 1. ∑ 2 n=0 ( ) (2.33) Соотношение (2.33) есть N 2 -точечное ДПФ массива Yn + Z n , представляющего собой сумму первых N 2 и последних N 2 отсчетов исходного временного массива X n . Аналогично для нечетных спектральных отсчетов ( N 2) − 1 ⎡ Y − Z W n ⎤ W 2k n , 0 ≤ k ≤ N − 1 . S k = A 2k + 1 = ∑ n ⎢ n ⎥⎦ 2 n=0 ⎣ ( ) (2.34) Соотношение (2.34) есть N 2 -точечное ДПФ массива (Yn − Z n )W n , представляющего собой взвешенную разницу первых N 2 и последних N 2 отсчетов исходного временного массива X n . Итак, задача вычисления N -точечного ДПФ снова была редуцирована, хотя и несколько иным способом, к задаче вычисления двух N 2 точечных ДПФ. Сигнальный граф для этого случая показан на рис. 2.8. Таким образом, при прореживании по частоте и по времени процедуру вычислений делят на log 2 N этапов. При этом на каждом этапе на определение элементов N-точечного массива затрачивается N комплексных сложений и умножений. В результате вычисления производятся примерно за N log 2 N комплексных сложений и умножений против N 2 – при «лобовых» вычислениях. 46 A0 X0 ДПФ (N=4) X1 X2 X5 X6 X7 A2 A3 X3 X4 A1 W0 −W 0 A4 W1 −W 1 W2 −W 2 W3 ДПФ (N=4) A5 A6 A7 −W 3 Рис. 2.8. Сигнальный граф редуцирования задачи вычисления N-точечного ДПФ к задаче вычисления двух N 2 -точечных ДПФ 2.1.7. Вычисление спектрограммы Спектрограммой сигнала называется его мгновенный спектр, зависящий от времени: t F (ω , t ) = ∫ X (t ) e − j ω t d t . (2.35) t −T Для вычисления спектрограммы дискретного сигнала его разбивают на сегменты (возможно, с перекрытием). Для каждого сегмента находят его спектр в виде коэффициентов ДПФ. Набор спектров и образует спектрограмму (рис. 2.9) [38]. Разрешающая способность по частоте такого спектрального анализа определяется величиной Δ f = 1 T1 , а разрешающая способность по време- ни – величиной T1 , если сегменты анализируемого процесса не перекрываются. Если же сегменты перекрываются, то разрешение по времени может быть равным даже Δt = T1 N1 , где N1 – число отсчетов сегмента, подвергаемого преобразованию Фурье (поэтому число N1 часто называют параметром БПФ и принимают равным степени «2»). Однако на практике 47 степень перекрытия выбирают из неких «разумных» предпосылок, поскольку при чересчур высокой степени перекрытия объем вычислений может стать неприемлемо высоким. A T1 T1 T1 T1 t T f t Рис. 2.9. Спектрограмма сигнала X (t ) : A – амплитуда, f – частота, t – время Один и тот же термин «спектрограмма» применяют как к комплексной функции частоты и времени, так и к ее модулю (набору амплитудных спектров). В программе MATLAB для получения комплексного массива B используют функцию specgram c синтаксисом B = specgram(x, Nfft, Fs, window, numoverlap), где x – массив отсчетов исходного сигнала; Nfft – параметр ДПФ, вычисляемого с помощью алгоритма БПФ; Fs – частоты дискретизации сигнала; window – окно для взвешивания сегментов сигнала; numoverlap – количество перекрывающихся отсчетов сегментов. Таким образом вычисляется и строится модуль массива B, т.е. набор амплитудных спектров, уровень значений которых кодируется цветом. Рассмотрим пример вычислений спектрограммы из командного окна. После указания пути к папке по имени \toolbox\signal\signal, где находятся необходимые для работы исходные данные и программы, откройте файл mtlb.mat, в рабочем пространстве при этом появится информация о считывании в среду MATLAB двух переменных – одномерного вещественного массива по имени mtlb из 4001 отсчета и числа Fs = 7418 Гц. 48 Сигнал mtlb (слово “MATLAB”) можно прослушать с помощью команды wavplay(mtlb, Fs, 'async'). Можно построить график сигнала mtlb (рис. 2.10) с помощью следующих команд: >> t=1:4001; >> plot(t,mtlb). Рис. 2.10. График речевого сигнала: слово «MATLAB» Теперь сформируем окно Бартлетта протяженностью 512 отсчетов: >> win = bartlett (512), график которого можно просмотреть с помощью команд >> x=1:512; plot(x,win). Наконец, выполним команду >> specgram(mtlb, 512, Fs, win, 256). При этом будем наблюдать спектрограмму, состоящую (при данных значениях параметров) из 14 спектров сегментов (рис. 2.11). Нетрудно подсчитать, что длительность анализируемого сигнала составляет T = 4001/ 7418 = 0,54 с, диапазон анализируемых частот равен [0, Fs/2], т.е. [0, 3709] Гц. Для Nfft=512 получаем, что длительность сегмента равна T1 = 512 / 7418 = −0,069 с, разрешающая способность по частоте Δf = Fs N1 = 7418/ 512 = 14,5 Гц. Для степени перекрытия 256 отсчетов разрешение по времени составляет 256 / 7418 = 0,035 с. 49 Рис. 2.11. Спектрограмма сигнала в окне Бартлетта 2.2. Корреляционная обработка сигналов. Процедура и примеры применения Задача выявления периодических колебаний на фоне шумов встречается практически повсеместно. Периодически меняется интенсивность излучения такого космического объекта, как Солнце. Планетные системы, вращаясь вокруг единого центра, периодически заслоняют друг друга, что позволяет астрономам обнаруживать объекты и измерять их характеристики. Наконец, все земные явления и процессы несут на себе «печать» периодичности вследствие вращения Земли вокруг Солнца и собственной оси, а также вращения Луны вокруг Земли. Выявление периодичности присутствует в задачах прогнозирования погоды и климата, тенденций развития растительного и животного мира, социальной и экономической активности людей [38, 43]. Разумеется, периодичность свойственна не только явлениям космического и планетарного масштаба. Анализ шумов и вибраций механизмов позволяет осуществлять раннее выявление неисправностей при технической диагностике. Анализ шумов сердца и легких – хорошо известные примеры медицинской диагностики. А задачи шумопеленгования либо активной локации объектов являются базовыми при обнаружении, слежении и классификации объектов-целей в военном деле. Зачастую периодический характер явлений и процессов замаскирован шумами, порой весьма интенсивными. В этой связи становится понятной актуальность задачи выявления «скрытых периодичностей». Одним из эффективных методов решения такой задачи является корреляционный анализ. 50 Для аддитивной смеси Y (t ) = S (t ) + ξ (t ) (2.36) сигнала S (t ) = A cos(2π f 0t + ϕ ) и шума ξ (t ) отношение сигнал-шум (отношение средней мощности A2 2 сигнала к средней мощности Dξ шума) A2 2 ρвх = Dξ может быть разным: как очень малым ρвх << 1 , так и большим. На рис. 2.12 показаны графики аддитивной смеси для ρвх. дБ = 10 ⋅ lg ρвх = −17 дБ, построенные для соотношения (2.36), т.е. «сигнал + шум», где t = iΔt , τ = jΔt , B – верхняя граница частоты белого шума на интервале [ 0, B ] Гц. Как видим, на фоне интенсивного шума сигнал не наблюдается. % Вычисление амплитуды A сигнала Y (t ) >> Dksi = 1; % дисперсия шума >> Rvh = -17; >> A = 10^((10*log10(2)+Rvh)/20);% Амплитуда сигнала >> %== сигнал плюс шум (3 периода гарм.сигнала)==== >> B = 5000; % верхн.границна частоты шума >> fi = rand(1)*2*pi; % фаза >> f0 = 220; >> f0B = f0/B; % входная частота сигнала >> Ngraf = ceil(3/f0B)*2+1; % (Ngraf = 139) >> i = 1: Ngraf; >> S = A*cos(pi*f0B*i+fi); % функция вх. сигнала >> ksi = randn(1, Ngraf); % функция шума >> Sksi = S + ksi; % сигнал + шум >> subplot(3,1,1); plot(i,S); % график сигнала >> title('Signal'); >> subplot(3,1,2); plot(i,ksi); % график шумa >> title('Noise'); >> subplot(3,1,3); plot(i,Sksi,'r'); % график "сигнал + шум" >> title('Signal+Noise'); Покажем, что корреляционный анализ случайного процесса помогает решить задачу выявления периодического сигнала на фоне шума. Поскольку составные части процесса Y (t ) статистически независимы, (2.37) K Y (τ ) = K S (τ ) + K ξ (τ ) , 51 s i n 2π Bτ A2 c o s ω 0τ ; K ξ (τ ) = Dξ K S (τ ) = , 2 2π Bτ где B – верхняя граничная частота шума ξ (t ) . (2.38) Signal 0.2 0 -0.2 0 20 40 60 80 100 120 140 80 100 120 140 100 120 140 Noise 5 0 -5 0 20 40 60 Signal+Noise 5 0 -5 0 20 40 60 80 Рис. 2.12. Графики аддитивной смеси Для построения графиков корреляционных функций (2.37) – (2.38) необходимо дискретизовать функции (2.38) с шагом Δt = 1 2 B , в результате чего получим ⎛π f A2 K S (τ ) = cos ⎜ 0 2 ⎝ B ⎞ ⎟ i; ⎠ K ξ (τ ) = Dξ sin πi , πi где f0 = 100… 200, B = 5000 . Как следует из соотношений (2.37) – (2.38), форма корреляционной функции процесса Y (t ) для τ ≥ 1 2B практически не отличается от формы гармонического сигнала S (t ) . Этот факт позволяет по частоте нульпересечений оценить частоту f 0 . Понятно, что действенность такого способа оценивания f 0 особенно эффективна при малых отношениях сигналшум ρвх . 52 2.2.1. Выявление периодического колебания на фоне шума На практике можно лишь оценить функцию корреляции, поэтому, естественно, результаты выявления гармонического сигнала на фоне шума будут не такими «красивыми». Структурная схема коррелометра показана на рис. 2.13 [38, 43]. Y(t) Y ( t )Y ( t + τ ) 1 T−x ∫ T −τ 0 Y( t + τ ) 1 KY* (τ ) = T −τ T −τ ∫ YT (t )YT (t + τ ) dt 0 Рис. 2.13. Структурная схема коррелометра Для отрезка YT (t ) процесса Y (t ) несмещенная оценка функции корреляции имеет вид 1 T −τ (2.39) KY* (τ ) = ∫ Y (t )YT (t + τ )dt . T −τ 0 T Покажем, что коррелометр действительно способен повышать отношение сигнал-шум: тем больше, чем больше некоррелированных отсчетов шума N содержится в реализации анализируемого процесса. Для аддитивной смеси сигнала и шума (2.36) имеем K Y∗ (τ ) = K S∗ (τ ) + K ξ∗ (τ ) + K S∗ ξ (τ ) + K ξ∗ S (τ ) . (2.40) Для статистически независимых сигнала и шума математическое ожидание оценки (2.40) будет иметь вид KY* (τ ) = KY (τ ) = K S (τ ) + Kξ (τ ) , (2.41) где ∗ – символ математического ожидания. При τ к < τ << T имеем A2 * K Y (τ ) = K Y (τ ) ≈ K S (τ ) = c o s ω 0τ . 2 Рассмотрим теперь дисперсию оценки выражения (2.40): D [ K Y* (τ ) ] = D [ K S* (τ ) ] + D [ K ξ* (τ ) ] + D [ K S* ξ (τ ) ] + + D [ K ξ* S (τ ) ] + 2 K * * + 2 K * * + K SKξ K S K Sξ 53 (2.42) + 2K + 2K * * + 2K * * + K *S K ξ* S K ξ K Sξ KξKξS . + 2K * K S ξ K *ξ S (2.43) После громоздких, хотя и несложных, выкладок получаем A4 T ⎛ τ ⎞ * D [ K Y (τ 0 ) ] ≈ ∫ ⎜ 1 − ⎟ c o s 2ω 0τ dτ + 4T 0 ⎝ T⎠ Dξ0 Dξ A 2 2 + + ( 2 + c o s 2ω 0τ 0 ) . T 2τ к . к в T 2τ к Ненулевой вклад обеспечивают слагаемые ⎡ ⎤ ∗ ∗ ⎡ ⎤ ⎡ ⎤ D Kξ (τ ) , D K S (τ ) и ⎢ K ∗ ∗ ⎥ . ⎢⎣ ⎥⎦ ⎢⎣ ⎥⎦ ⎢ K K ⎥ Sξ ξ S ⎦ ⎣ Подставляя ρ в х D [ K Y* (τ 0 ) ] ≈ (2.44) A2 2 в (2.43), имеем Dξ Dξ2 ρ в2 х T ⎛ τ ⎞ ∫ ⎜ 1 − ⎟ c o s 2ω 0τ dτ + T T⎠ 0⎝ Dξ2 A4 4 1 + ⋅ + ρв х ⋅ 2 + c o s 2ω 0τ 0 . 2 T T 2 2 τ τ ρв х к.кв к ( ) (2.45) Нетрудно увидеть, что для малых значений входного отношения сигнал-шум, наиболее интересных для исследования ( ρвх << 1 ), наибольший вклад в дисперсию оценки функции корреляции делает слагаемое D ⎡ Kξ∗ (τ ) ⎤ , т.е. ⎣⎢ ⎦⎥ D [ K Y* (τ ) ] ≈ D [ K ξ* (τ ) ] ≈ 2 Dξ 2 T 54 A4 4 1 τ к.кв = ⋅ . 2 T 2 τ ρвх к.кв (2.46) Таким образом, если трактовать выражение (2.42) как сигнал на выходе коррелометра, а выражение (2.46) – как мощность шума на выходе коррелометра, тогда отношение сигнал-шум на выходе коррелометра будет иметь вид A 4 (T 2τ к . к в ) A4 8 = = ρвых = * 2 8 Dξ D [ K ξ (τ ) ] (T 2τ к . к в ) = ρ в2х = ρ в2хT B . 2 Обозначая T 2τ к.кв = N , получаем 2 N ρвых = ρвх 2 или, если отношение сигнал-шум измеряется в децибелах, N⎞ ⎛ ρ в ы х . д Б = 1 0 ⋅ l g ⎜ ρ в2х ⎟ = 2⎠ ⎝ = 2ρ в х . д Б + 1 0 ⋅ l g N − 1 0 ⋅ l g 2 . (2.47) (2.48а) (2.48б) Соотношения (2.48а), (2.48б) показывают, что применение коррелятора позволяет существенно повысить отношение сигнал-шум за счет усреднения некоррелированных отсчетов шума. Используя соотношения (2.48а) и (2.48б), можно оценить объем N экспериментальной выборки отсчетов смеси сигнала и помехи, который необходим для обеспечения заданного отношения сигнал-шум на выходе коррелятора: 2P N = вых , (2.49а) 2 ρвх 0,1( ρвых.дБ − 2 ρвх.дБ + 10 ⋅ lg 2) . (2.49б) N = 10 Формулы (2.49а), (2,49б) чрезвычайно полезны при планировании эксперимента. Они позволяют определить объем выборки отсчетов процесса Y (t ) при заданных входном и выходном отношениях сигнал-шум. Вычислим N, которое необходимо для обеспечения выходного отношения сигнал-шум, равного 10 дБ, и проведем моделирование соответствующего процесса на выходе коррелятора. % вычисление N , которое обеспечивает Rvyh=10 дБ % Rvh – отношение сигнал-шум на входе коррелометра (Rvh =-17 - 10). Rvh = - 17; Rvyh=10; N = 10^(0.1*(Rvyh-2*Rvh+10*log10(2))); 55 В результате вычислений получаем N = 50238. Наконец, смоделируем процедуру обработки сигнала YT (t ) коррелометром. На рис. 2.14 приведены графики оценки функции корреляции (т.е. графики сигнала на выходе коррелометра). Рис. 2.14. Графики сигнала на выходе коррелометра % моделирование коррел. обработки смеси сигнала с шумом % =ceil(N); >>figure; i = 1:N; fi = rand(1)*2*pi; >> f0 = 200; B = 5000; >> f0B = f0/B; >> A = 10^((10*log10(2)+Rvh)/20); >> Ngraf = ceil(3/f0B)*2+1; >>S = A*cos(pi*f0B*i+fi); % N отсчетов сигнала >>ksi = randn(1,N); % N отсчетов шума >>Sksi = S + ksi; % N отсчетов смеси >>[K_y,tau] = xcorr(Sksi,Ngraf,'unbiased'); % Ngraf*2+1 значений функц.коррел. >>subplot(2,1,1); plot(tau,K_y); % график оценки функции коррел. >> title('otsenka corr sig+nois'); >>subplot(2,1,2); plot(tau(Ngraf+2: 2*Ngraf+1),K_y(Ngraf+2: 2*Ngraf+1)); % фрагмент графика >> title('frogment otsenka corr sig+nois') 56 2.2.2. Оценивание длины периода основного тона речевого сигнала. Экспериментальное измерение в системе MATLAB Высота тона – основное различие между мужскими и женскими спикерами. Высота тона человека определяется в голосовых связках, и темп, с которым вибрируют вокальные складки, представляет собой частоту высоты тона. Когда воздух проходит через вибрирующие вокальные складки, создаются также гармоники. Оценивание периода (или частоты) основного тона – одна из наиболее важных задач в обработке речевых сигналов [39]. Выделители основного тона (ОТ) используются в вокодерах, системах распознавания и верификации дикторов, в устройствах, предназначенных для глухих. Для решения задачи предложен ряд способов. Например, для оценивания длины периода основного тона речевого сигнала можно использовать кратковременную автокорреляционную функцию [34]. Для ее вычисления разработаны эффективные алгоритмы. При длине окна N > 256 отсчетов лучше всего использовать БПФ, которое предполагает выполнение 8(2·log2N+3)N умножений. С помощью системы MATLAB можно провести экспериментальное измерение частоты основного тона речевого сигнала [38], которое базируется на следующей априорной информации: – частота основного тона голоса человека находится в пределах 60 – 200 Гц; – для качественной передачи речевого сигнала достаточно использовать полосу частот 20 Гц – 5 кГц. Вначале проводят проверку работоспособности системы ввода речевого сигнала в компьютер. Для этого используют телефонную гарнитуру и стандартную программу записи звука, активизируемую в Windows с помощью меню Пуск > Программы > Стандартные > Развлечения > Звукозапись. Далее, используя MATLAB, вводим речевой сигнал в компьютер (например слово «барбарис»): >>Y = wavrecord(15000); % частота дискретизации 11025 Гц. Проконтролировать на слух результаты записи можно, выполнив следующую команду: >>wavplay(Y). Далее нужно выделить из речевого сигнала фрагмент с гласным звуком. С этой целью активизируем программу sptool. Анализируем записанный сигнал и находим границы самого протяженного гласного звука (рис. 2.15). Записываем координаты маркеров, соответствующих этим границам: t1 = 0,816 и t 2 = 1,018. 57 Рис. 2.15. График речевого сигнала (слово «барбарис») Формируем массив чисел Y 1 из выделенного фрагмента: >>Fs = 11025; t1 = 0.816; t2 = 1.018; % границы фрагмента >>j1 =ceil(t1*Fs); j2 = ceil(t2*Fs); % номера отсчетов границ фрагмента >>Y1 = Y(j1:j2); % массив отсчетов фрагмента. Импортируя массив Y 1 в рабочее пространство программы sptool, можно визуально и на слух проконтролировать полученный фрагмент (рис. 2.16). Рис. 2.16. График сформированного фрагмента (гласный звук) 58 Наконец, выполняем автокорреляционный анализ выделенного фрагмента и оцениваем частоту основного тона: >> [Kzvuk,lags] = xcorr(Y1,400). Результат вычисления корреляционной функции вновь целесообразно импортировать в среду sptool, где с помощью вертикальных маркеров (рис. 2.17) провести измерения периода колебаний. Рис. 2.17. График корреляционного анализа гласного звука Частота основного тона определяется по формуле f0 = 1 T0 . Измерить период T 0 очень просто: в программе sptool установите маркеры примерно так, как показано на рис. 2.17. Между маркерами в данном случае уложилось восемь периодов T 0 . Величина периода вычисляется следующим образом: T0 = ( t 2 − t1) 8 = ( 0,06549 − 0,00698 ) 8 = 0,007314 . В результате таких измерений получаем оценку частоты основного тона f 0 = 137 Гц. Теперь рассмотрим проблемы, обусловленные наличием нескольких гармонических компонентов. Анализ рис. 2.16 показывает, что измерение частоты основного тона произвести весьма непросто несмотря на то, что шумовой сигнал действительно практически полностью подавлен. Дело в том, что помимо основного тона в гласном звуке присутствуют обертоны – гармоники с кратными частотами. Более того, как показывает практика измерений, мощность 59 обертонов может быть выше мощности основного тона, поэтому, измеряя частоту основного тона, легко ошибиться, приняв период колебания обертона за период основного тона. Смоделируем рассмотренную ситуацию. Предположим, что сигнал представляет собой сумму двух гармоник одинаковой амплитуды, но частота второй гармоники вдвое выше частоты первой: S (t ) = S 1(t ) + S 2 (t ) ; S 1(t ) = A c o s (2π f 0t + ϕ 1 ) ; (2.50) S 2 (t ) = A c o s (4π f 0t + ϕ 2 ) . В силу статистической независимости случайных величин ϕ1 и ϕ2 корреляционная функция такого сигнала равна сумме корреляционных функций слагаемых: A2 K S (τ ) = K S 1 (τ ) + K S 2 (τ ) = (2.51) ( c o s ω 0τ + c o s 2ω 0τ ) . 2 Обобщая рассмотренную модель на случай трех гармоник (частота третьей гармоники в три раза больше частоты первой), получим K S (τ ) = K S (τ ) + K S (τ ) + K S (τ ) = 1 2 3 A2 = ( c o s ω 0τ + c o s 2ω 0τ + c o s 3ω 0τ ) . (2.52) 2 Построим графики функций корреляции (2.51) и (2.52) (с точностью до множителя A2 2 ) (рис. 2.18). % функция коррел. полигармонич. сигнала >>figure; >> f0 = 137; Fs = 11025; itau = 0:400; >>Ks2 = cos(2*pi*f0*itau/(2*Fs))+ cos(4*pi*f0*itau/(2*Fs)); >>Ks3=cos(2*pi*f0*itau/(2*Fs))+cos(4*pi*f0*itau/(2*Fs))+… cos(6*pi*f0*itau/(2*Fs)); >>subplot(2,1,1); plot(itau,Ks2); >>title('dve gormonic'); grid on; >>subplot(2,1,2); plot(itau,Ks3); >>title('tri gormonic');>>grid on; Период основного тона на рис. 2.18 виден неплохо: в моменты времени, кратные этому периоду, все гармонические компоненты функции корреляции суммируются синфазно, в результате чего обеспечивается «дружный» периодический «всплеск». Вместе с тем очевидно, что вклад обертонов настолько существен, что назвать ситуацию удобной для практического анализа нельзя. 60 Рис. 2.18. Графики функций корреляции Особенно сложная ситуация, когда мощность обертонов выше мощности основного тона. Действительно, для простой двухкомпонентной модели (2.52) в предположении, что мощность обертона в два раза (т.е. на 6 дБ) выше мощности основного тона A2 K S (τ ) = K S1 (τ ) + K S2 (τ ) = (2.53) ( cos ω0τ + 2 ⋅ cos 2ω0τ ) . 2 Результат показан на рис. 2.19. Выполним моделирование. % функц. коррел., обертон мощнее в 2 раза >>figure; >>Ks2 = cos(2*pi*f0*itau/(2*Fs))+ 2*cos(4*pi*f0*itau/(2*Fs)); >>plot(itau,Ks2); % две гармоники >>title(‘Две гармоники, обертон мощнее в 2 раза’); >>grid on. Рассмотренный пример наглядно демонстрирует мешающий характер мощного обертона. Сравнивая рис. 2.17 и 2.18, видим, что результаты 61 моделирования объясняют природу отмеченных ранее трудностей измерения периода (частоты) основного тона. Рис. 2.19. График функции корреляции (обертон мощнее в два раза) 2.2.3. Преобразование Фурье функции корреляции как способ выявления периодического колебания Решение указанной выше проблемы можно найти путем вычисления преобразования Фурье от корреляционной функции. Гармоники, из которых состоит функция корреляции, превратятся в спектральные пики, разнесенные по частоте. Тем самым будет решена проблема разделения основного тона и обертонов. В сущности, мы вплотную подошли к идее вычисления спектра мощности стационарного случайного процесса (ССП), провозглашенной в свое время независимо друг от друга советским математиком А. Хинчиным и американским кибернетиком Н. Винером. Пара преобразований Винера – Хинчина – это преобразования Фурье, связывающие между собой функцию корреляции и спектр мощности ССП [38]: ∞ ⎧ ⎪ P ( f ) = ∫ K (τ )exp(− j 2π f τ )dτ , ⎪ −∞ ⎨ ∞ ⎪ ⎪ K (τ ) = ∫ P ( f )exp( j 2π f τ )df . ⎩ −∞ Применяя преобразование Фурье к функции (2.53), получим 62 (2.54) 2 P( f ) = A [δ ( f + f 0 ) + δ ( f − f 0 ) ] + 4 + A2 [δ ( f + 2 f 0 ) + δ ( f − 2 f 0 ) ] . (2.55) 2 График функции (2.55) показан на рис. 2.20. В области положительных частот мы имеем два идеально разделяемых спектральных пика. Разумеется, результат измерений спектра мощности, именуемый «оценкой спектра мощности», P( f ) будет выглядеть несколько хуже, A2 как и «положено» всякой оценке. 2 A2 Оценка спектра будет отличаться 4 от истинного спектра на величину ошибки измерений, содержащей систематическую и случайную со0 f f0 2 f0 ставляющие. Рис. 2.20. График функции (2.55) Оценку спектра мощности с учетом соотношений (2.54) естественно сформировать в виде P( f ) = T ∫ K (τ )exp(− j 2π f τ )dτ , (2.56) −T где K (τ ) – оценка корреляционной функции. Систематическая составляющая погрешности оценки (2.56) обусловлена тем, что длительность T отрезка наблюдаемого процесса конечна. Можно показать, что математическое ожидание оценки спектра мощности двухкомпонентного ССП имеет вид A2T P(f ) = S a 2 ⎡⎣π ( f − f 0) T ⎤⎦ + S a 2 ⎡⎣π ( f + f 0) T ⎤⎦ + 4 A2T + S a 2 ⎡⎣π ( f − 2 f 0) T ⎤⎦ + S a 2 ⎡⎣π ( f + 2 f 0) T ⎤⎦ . 2 График этой функции для двух значений параметра T показан на рис. 2.21. На нижнем графике параметр T вдвое больше, чем на верхнем. При построении графиков приняты следующие обозначения: r Δf ' N r ' f T = r Δf N Δt = = , f 0 T = r0 . 2B Δf Δf ' %===== функц. коррел. полигармонич. сигнала ====== figure; r = 0:200; fT1 = r/10; fT2 = r/5; { } { } 63 f0T1 = 6; f0T2 = 12; P1 = (sinc(fT1 – f0T1)).^2 + 2*(sinc(fT1 – 2*f0T1)).^2; P2 = (sinc(fT2 – f0T2)).^2 + 2*(sinc(fT2 – 2*f0T2)).^2; subplot(2,1,1); plot(r,P1); % fT = r/10 title(‘fT = r/10’); grid on; subplot(2,1,2); plot(r,P2); % fT = r/5 title(‘fT = r/5’); grid on; Рис. 2.21. График математического ожидания оценки спектра мощности двухкомпонентного ССП Верхний график (рис. 2.21) соответствует случаю f T = r , r0 = 6; 10 r нижний – f T = ; r 0 = 12 . 5 1. 2. 3. 4. 5. Контрольные вопросы Что такое ряд Фурье и каковы условия Дирихле? Как определяются ППФ и ОПФ? Какая связь между коэффициентами Фурье и спектром сигнала? Каковы свойства ДПФ? Что такое спектрограмма сигнала и как она вычисляется в MATLAB? 64 6. Что такое аддитивная смесь сигнала и как происходит процесс ее построения в MATLAB? 7. Какова функция корреляции? 8. Какова оценка спектра мощности сигнала с учетом преобразования Фурье? 65 Глава 3. ЦИФРОВАЯ ФИЛЬТРАЦИЯ РЕЧЕВОГО СИГНАЛА Под термином «цифровая фильтрация» обычно понимают локальную цифровую обработку сигнала скользящим окном с заданной апертурой. При этом полагают, что размер окна много меньше размера выборки обрабатываемого фрагмента сигнала. Для каждого положения окна, за исключением, возможно, небольшого числа крайних точек выборки, выполняются однотипные действия, которые определяют так называемый отклик, или выход фильтра. Если действия, определяющие отклик фильтра, не изменяются в процессе перемещения по выборке сигнала, то соответствующий фильтр называется стационарным, в противном случае – нестационарным. Различают линейную и нелинейную цифровую фильтрацию [16, 38]. 3.1. Линейная цифровая фильтрация Линейная цифровая система описывается уравнением свертки ∞ y [n] = (3.1) ∑ h l x [n − l ], l = −∞ где x [ n ] – входная выборка, y [ n ] – выходная выборка, h l – импульсная характеристика системы. Передаточная функция линейной цифровой системы определяется выражением Y ( z) , (3.2) H ( z) = X ( z) ∞ ∞ n где X ( z ) = ∑ x [n] z , Y ( z ) = ∑ y [n] z n – Z-преобразования входn = −∞ n = −∞ ной и выходной выборок сигнала. Если умножить обе части равенства (3.1) на z n и просуммировать по n , можно получить выражение для передаточной функции линейной цифровой системы в виде ∞ H ( z ) = ∑ h l z −l , (3.3) l = −∞ где h l – импульсная характеристика системы. 66 Необходимое и достаточное условие устойчивости линейной цифровой системы [9, 20, 23] часто записывается в виде неравенства для импульсной характеристики системы: ∞ (3.4) ∑ hl < ∞ . l = −∞ Линейная цифровая система является физически реализуемой, если h l = 0 при l < 0 . Цифровые устройства, выполняющие преобразования вида (3.1), называются линейными цифровыми фильтрами. Они являются финитной линейной цифровой системой и в общем случае описываются уравнением I L i =0 l =0 ∑ a i y [n − i ] = ∑ b l x [n − l ] , где {a i , b l } – коэффициенты (3.5) фильтра. Обычно линейные цифровые фильтры подразделяют на фильтры низких частот, высоких частот, полосно-пропускающие и полосно-заграждающие (режекторные) фильтры, амплитудные и фазовые фильтры-корректоры, гребенчатые фильтры и др. Первые четыре типа называют основными, или базовыми типами фильтров. По своей конструкции линейные цифровые фильтры разделяют на рекурсивные и нерекурсивные (трансверсальные) фильтры. Коэффициенты трансверсальных фильтров, или фильтров с конечной импульсной характеристикой (КИХ-фильтров), удовлетворяют следующим условиям: a 0 = 1, ai = 0 для всех i ≠ 0 . Рекурсивные фильтры называют фильтрами с бесконечной импульсной характеристикой (БИХ-фильтрами). Передаточная функция линейного цифрового фильтра (3.5) имеет вид L ∑ b l z −k (3.6) . H ( z) = l = 0 I l + ∑ ai z −i i=l Многочлены, стоящие в числителе и знаменателе этого выражения, можно представить в виде произведения и переписать передаточную функцию линейного цифрового фильтра (3.5) в следующем виде: 67 L H ( z) = ∏ l =0 ( z − β l ) I ∏ i =0 ( z −αi ) (3.7) . Условие устойчивости линейного цифрового фильтра обычно записывают в виде неравенства ai < 1 , где i = 0, 1,…, l , т. е. полюса передаточной функции цифрового фильтра должны лежать внутри окружности единичного радиуса. Положение нулей передаточной функции βl на устойчивость фильтра не влияет, однако условие βl < 1 при l = 0, 1,…, L определяет минимально-фазовый цифровой фильтр. Частотная характеристика цифрового фильтра H (ω ) соответствует передаточной функции фильтра H ( z ) при z = e j ω T , где T – интервал дис- кретизации, ω = 2π f d – круговая частота. Поскольку экспоненциальная функция мнимого аргумента z = e j ω T – периодическая функция частоты с периодом W = 2π T , то частотная характеристика цифрового фильтра H (ω ) также является периодической функцией частоты с периодом W. Вычисление коэффициентов цифрового фильтра, удовлетворяющего заданным условиям, принято называть проектированием (синтезом) фильтра, а устройство или программу, которые осуществляют преобразование цифровых сигналов, – реализацией фильтра. 3.2. Нелинейная цифровая фильтрация Класс нелинейных цифровых фильтров слишком большой для того, чтобы проводить его изучение в общем виде, поэтому ограничимся рассмотрением одного из самых известных семейств нелинейных цифровых фильтров, а именно семейства порядковых фильтров. Они широко используются в задачах цифровой обработки сигналов и изображений, в частности для обнаружения объектов, выделения границ, подавления импульсных помех. Отклик порядкового p -фильтра определяется как p -я порядковая статистика [20, 24, 25], т. е. элемент под номером p , где p – одно из чисел {0, 1,…, N − 1} , N – размер апертуры фильтра в вариационном ряду, полученном из выборки исходных данных, находящихся в пределах апертуры фильтра. В частности, при p = 0 и p = N − 1 выходная выборка будет описывать соответственно «нижнюю» и «верхнюю» огибающие сигнала, а при p = N 2 выходная выборка будет представлять результат медианной фильтрации сигнала. 68 3.3. Нерекурсивные цифровые фильтры (НЦФ) Нерекурсивные цифровые фильтры (НЦФ) характеризуются следующими достоинствами: − простота теоретического анализа: существует несколько хорошо известных и апробированных методик расчета фильтров; − наглядная связь коэффициентов фильтра с отсчетами его импульсной переходной характеристики; − простота практической реализации; − устойчивость фильтра; − линейность фазовой характеристики (при условии симметричности фильтра), позволяющая уменьшить искажения фронтов импульсных сигналов (поэтому такие фильтры широко применяются в телекоммуникационных системах). Нерекурсивные фильтры широко применяются при обработке изображений, поскольку описываются матрицей коэффициентов. Также двумерные фильтры являются естественным обобщением одномерных фильтров. Отличительная особенность НЦФ – зависимость отсчетов выходного сигнала y (n) только от отсчетов входного сигнала в настоящий момент времени x ( n ) и предыдущие моменты x ( n − k ) . Алгоритм (уравнение) НЦФ порядка N записывают в виде N y (n) = ∑ a k x ( n − k ). k =0 Для расчетов удобнее использовать фильтр порядка 2N с алгоритмом фильтрации вида y (n) = N ∑ k =−N a k x ( n − k ). (3.8) При N=2 можно записать y (n) = a−2 x ( n + 2) + a−1x (n + 1) + a 0 x (n) + a 1x (n − 1) + a2 x ( n − 2), где x ( n ) – отсчет входного сигнала в момент времени nTd , y (n) – со- ответствующий выходной сигнал, T d – период дискретизации. При такой записи алгоритма фильтрации выходной сигнал в момент времени n можно вычислить только тогда, когда станут известны «будущие» входные отсчеты. Это означает, что при вычислениях в реальном 69 времени выходной сигнал фильтра будет неизбежно запаздывать относительно входного как минимум на время t = Td ⋅ N . При малых порядках фильтра такое запаздывание оказывается вполне допустимым для практических приложений (например при цифровой телефонной связи). Если на НЦФ подать единичный импульс ⎧1 при n = 0, x ( n) = ⎨ ⎩0 при n ≠ 0, то согласно (3.8) на выходе должна появиться последовательность из ( 2 N + 1) отсчетов, соответствующих весовым коэффициентам фильтра ak . Очевидно, что эта последовательность конечна, поэтому НЦФ имеет конечный импульсный отклик и называется КИХ-фильтром, или FIR-фильтром (finite impulse response filtre) [16, 26, 38]. Если на НЦФ подать дискретное гармоническое колебание N x n = exp ( j ω nTd ) , тогда из (3.8) следует yn = ∑ ak ⋅ exp[ j ω (n − k ) Td ] , k = −N откуда передаточная функция НЦФ имеет вид H d (ω ) = = yn xn = x n = e x p ( jω n T d ) ∞ N ω e x p ( − ) = a j k T a k e x p ( − jω k T d ) . ∑ ∑ k d k = −N k = −∞ (3.9) Нетрудно проверить, что H d (ω ) – функция частоты с периодом 2π Td , т.е. H d (ω ) = H d (ω + r ⋅ 2π Td ), r = ±1, 2,... . Таким образом, H d (ω ) может быть представлена рядом Фурье в частотной области, причем коэффициенты ak этого ряда определяются соотношением Td π / Td ak = ∫ H ( j ω )exp( j ω k Td ) dω . 2π −π / T d d 70 (3.10) При расчетах удобно оперировать четными либо нечетными относительно k коэффициентами ak . В этом случае упрощается вид передаточной функции H d (ω ) . Для четных a k = a − k передаточная функция H d (ω ) – вещественная и состоит из суммы взвешенных косинусоид N H d (ω ) = a 0 + 2 ∑ a k cos ω k T d , k =1 а для нечетных ak = − a− k – чисто мнимая и состоит из суммы синусоид N H d (ω ) = −2 j ∑ a k sin ω k Td . k =1 3.4. Рекурсивные цифровые фильтры (РЦФ, или IIR) Отсчеты выходного сигнала рекурсивного цифрового фильтра (РЦФ) в каждый момент времени зависят не только от отсчетов входного сигнала, но и от отсчетов выходного сигнала в предшествующие моменты времени. В общем случае уравнение РЦФ записывают в виде [16, 26, 38] N M y ( n) = ∑ a k x ( n − N ) − ∑ b k y (n − k ) . (3.11) k =0 k =1 Большее из двух чисел M, N определяет порядок фильтра. На простейших примерах можно показать, что импульсная передаточная характеристика (ИПХ) рекурсивного фильтра бесконечна, поэтому такой фильтр именуют БИХ, или IIR-фильтром (infinite impulse response). Действительно, пусть уравнение РЦФ имеет вид y n = x n + 0,5 y n − 1 . Подадим на такой фильтр единичный импульс ⎧1, n = 0, x n = x0 = ⎨ ⎩0, n = 0. Поскольку в моменты времени, предшествующие n = 0 , фильтр не был возбужден, т.е. y −1 = 0 , получаем: при n = 0 x0 = 1; y 0 = x0 + 0,5 y −1 = x0 = 1; при n = 1 x1 = 0; y1 = x1 + 0,5 y 0 = 0,5; при n = 2 x 2 = 0; y 2 = x 2 + 0,5 y1 = 0,25 и так далее, т.е. ИПХ длится бесконечно долго. 71 Для получения передаточной функции рекурсивного фильтра приня∞ то использовать Z-преобразование X ( z ) = ∑ x n z −n . n = −∞ Умножая y ( n ) на b 0 = 1 и подвергая обе части уравнения (3.11) Z-преобразованию, получаем ∞ ⎡ M ∞ ⎡ N ⎤ ⎤ −n ∑ ⎢ ∑ b k y ( n − k ) ⎥ z −n = ∑ ⎢ ∑ a k x ( n − k )⎥ z . ⎥⎦ ⎥⎦ n = − ∞ ⎢⎣ k = 0 n = − ∞ ⎢⎣ k = 0 Принимая a k = 0 при N < k < 0 и b k = 0 при M < k < 0 , можно расширить границы суммирования до ±∞ : ∞ ⎡ ∞ ∞ ⎡ ∞ ⎤ ⎤ −n ∑ ⎢ ∑ b k y ( n − k ) ⎥ z −n = ∑ ⎢ ∑ a k x ( n − k )⎥ z ⎥⎦ ⎥⎦ n = −∞ ⎢⎣ k = −∞ n = −∞ ⎢⎣ k = −∞ или ∞ ∞ − k y ( n − k ) z −( n − k ) = ∑ bkz ∑ k = −∞ n = −∞ ∞ ∞ = ∑ a k z − k ∑ x ( n − k ) z −( n − k ) . k = −∞ n = −∞ Обозначив m = ( n − k ) , получим ∞ ∞ ∞ ∞ ∑ b k z −k ∑ y m z −m = ∑ a k z −k ∑ x m z −m , k = −∞ n = −∞ k =∞ n = −∞ или компактном виде B ( z ) ⋅ Y ( z ) = A ( z ) ⋅ X ( z ) , где B ( z ) , Y ( z ) , A ( z ) , X ( z ) – Z-преобразования соответствующих числовых последовательностей. Отсюда следует, что Z-преобразование передаточной функции фильтра (т.е. отношение выходной реакции к входному воздействию) имеет вид Y (z) A( z ) = = H d (z) = X (z) B(z) a 0 + a1 z − 1 + a 2 z − 2 + … + a N z − N = . (3.12) b0 + b1 z − 1 + b2 z − 2 + … bM z − M 72 После подстановки в (3.12) z = exp( jωTd ) получим передаточную функцию в виде зависимости коэффициента передачи от частоты: H d ( jω ) = H d ( z = exp( j ω T d )) . H d ( jω ) –функция частоты с периодом 2π T d . 3.5. Адаптивная фильтрация речевых сигналов Как правило, адаптивные устройства выполняются узко функционального целевого назначения под определенные типы сигналов. Внутренняя структура адаптивных систем и алгоритм адаптации практически полностью регламентируются функциональным назначением и определенным минимальным объемом исходной априорной информации о характере входных данных и их статистических и информационных параметрах. Это порождает многообразие подходов при разработке систем, существенно затрудняет их классификацию и разработку общих теоретических положений [13]. Тем не менее все способы использования адаптивных фильтров так или иначе сводятся к решению задачи идентификации, т.е. определения характеристик некоторой системы. Возможны два варианта идентификации – прямая и обратная. В первом случае адаптивный фильтр включают параллельно с исследуемой системой (рис. 3.1, а). Входной сигнал является общим для исследуемой системы и адаптивного фильтра, а выходной сигнал системы служит для адаптивного фильтра образцовым сигналом. В процессе адаптации временные и частотные характеристики фильтра будут стремиться к соответствующим характеристикам исследуемой системы. При обратной идентификации адаптивный фильтр включается последовательно с исследуемой системой (рис. 3.1, б). Выходной сигнал системы поступает на вход адаптивного фильтра, а входной сигнал системы является для него образцом. Таким образом, фильтр стремится компенсировать влияние системы и восстановить исходный сигнал, устранив внесенные системой искажения. Заметим, что в рассмотренных схемах (см. рис. 3.1) независимо от варианта идентификации адаптивный фильтр имеет два входа: на один подается сигнал с входа исследуемой системы, а на второй – с выхода. Таким образом, адаптивный фильтр располагает информацией, достаточной для измерений характеристик исследуемой системы. Попробуем 73 проследить, как адаптивный фильтр распоряжается этой информацией, формируя некий выходной сигнал. С этой целью рассмотрим более конкретную проблему. Исследуемая система Исследуемая система Адаптивный фильтр Вход Вход Адаптивный фильтр Образец Образец а) б) Рис. 3.1. Идентификация системы с помощью адаптивного фильтра: а – прямая, б – обратная Пусть необходимо обеспечить водителя шумного транспортного средства (поезд метро, трактор, самолет и т.п.) системой речевой связи. При этом воспринимаемый микрофоном речевой сигнал неизбежно окажется сильно зашумленным. Информацию о шуме можно получить, установив второй микрофон в непосредственной близости от двигателя (или иного источника шумов). Разумеется, этот шум нельзя просто вычесть из речевого сигнала, поскольку к двум микрофонам шум следует разными путями и, следовательно, претерпевает разные искажения (рис. 3.2). Источник сигнала Датчик сигнала Образец Путь 1 Вход Источник шума Путь 2 Датчик шума Адаптивный фильтр Сигнал Очищенный от шумов речевой сигнал Рис. 3.2. Подавление шума с помощью адаптивного фильтра 74 Однако случайные шумовые процессы, воспринимаемые двумя микрофонами, будут коррелированными, так как они происходят из общего источника. В то же время очевидно, что шумовой сигнал не коррелирован с полезным речевым сигналом. Сопоставляя рис. 3.2 и 3.1, нетрудно заметить, что с помощью адаптивного фильтра в данном случае решается задача прямой идентификации исследуемой системы, которая преобразует шум на пути от источника шума к датчику сигнала («путь 1»). Входных сигналов у адаптивного фильтра два. По смыслу решаемой задачи «главный» входной сигнал – это сигнально-шумовая смесь с выхода основного микрофона, тогда как шум с выхода дополнительного микрофона – «вспомогательный». По терминологии рис. 3.1 и 3.2 «главный» входной сигнал – это «образец». По американской терминологии (рис. 3.3) – это desired, т.е. «желаемый», или «пилотный» сигнал. Шумовой сигнал от дополнительного микрофона на рис. 2.16 именуют «входным», что совпадает с американским термином input. Другое название этого шумового сигнала в американской литературе – reference, т.е. «опорный» [7]. Адаптивный фильтр стремится преобразовать входной сигнал так, чтобы сделать его как можно ближе к образцу. Поскольку с входным сигналом фильтра коррелирована лишь шумовая составляющая образцового сигнала, в установившемся режиме на выходе фильтра будет получаться оценка шума, присутствующего в образцовом сигнале. Этот выходной сигнал, однако, нужен лишь как вспомогательное средство для получения второго выходного сигнала – сигнала «ошибки», рассчитываемого как разность между образцовым сигналом и выходным сигналом адаптивного фильтра. Сигнал «ошибки» и представляет собой очищенный от шума речевой сигнал. Таким образом, адаптивный фильтр помимо двух входов должен иметь два выхода. По смыслу решаемой задачи «главным» выходным сигналом является очищенный от шумов речевой сигнал. Этот разностный сигнал (между образцовым сигналом и вторым выходным сигналом адаптивного фильтра, о котором будет сказано далее) именуют «сигналом ошибки», или по американской терминологии error (см. рис. 3.3 и 3.4). Данный термин, возможно, не слишком удачен, ибо ассоциируется с чем-то негативным. Его происхождение можно объяс75 нить широким применением адаптивных фильтров в системах автоматического регулирования – там «сигналу ошибки» вполне обоснованно приписывается отрицательная роль. Что касается задачи подавления шумов, маскирующих речь, здесь, как видим, термин «ошибка» ни в коем случае не следует понимать буквально. Рис. 3.3. Simulink – модель адаптивного фильтра в задаче шумоподавления Второй выходной сигнал адаптивного фильтра играет «вспомогательную» роль – это оценка шума, маскирующего речевой сигнал. По смыслу решаемой задачи его можно также называть шумом, приведенным ко входу главного микрофона. Как следует из рис. 3.4, этот сигнал y (k ) снимают с выхода управляемого фильтра и называют «выходной сигнал» – output (см. рис. 3.3). Общая структура адаптивного фильтра показана на рис. 3.4. Как видим, адаптивный фильтр состоит из трех компонентов: перестраиваемый фильтр, блок (алгоритм) адаптации, управляющий параметрами фильтра, а также блок вычитания. 76 Опорный шумовой сигнал x(k ) обрабатывается фильтром, в результате чего получается выходной сигнал y (k ) . Этот выходной сигнал сравнивается с образцовым сигналом d (k ) , разность между ними образует сигнал ошибки e(k ) . Задача адаптивного фильтра – минимизировать ошибку воспроизведения образцового сигнала. С этой целью блок адаптации после обработки каждого отсчета анализирует сигнал ошибки и дополнительные данные, поступающие из фильтра, и использует результаты этого анализа для подстройки параметров (коэффициентов) фильтра. x(k ) y (k ) d (k ) Фильтр Доп. данные Подстройка коэффициентов e( k ) Алгоритм адаптации Рис. 3.4. Общая структура адаптивного фильтра Возможен и иной вариант адаптации, при котором опорный шумовой сигнал не используется. Такой режим работы называется слепой адаптацией (blind adaptation), или обучением без учителя (unsupervised learning). Разумеется, в этом случае требуется некоторая информация о структуре полезного входного сигнала (например, знание типа и параметров используемой модуляции). Очевидно, что слепая адаптация – более сложная вычислительная задача, нежели адаптация с использованием образцового сигнала. В качестве фильтра в структуре, показанной на рис. 3.4, чаще всего используют нерекурсивный цифровой фильтр. Одно из главных достоинств этого варианта – нерекурсивный фильтр является устойчивым при любых значениях коэффициентов. Однако следует помнить, что алгоритм адаптации вводит в систему обратную связь, вследствие чего адаптивная система в целом может стать неустойчивой. 77 3.6. Демонстрационный пример (MATLAB 7) фильтрации по критерию наименьшей среднеквадратичной ошибки (LMS – least mean square error) Алгоритм фильтрации по критерию минимума среднеквадратичной ошибки (СКО) описывается следующими соотношениями [7]: (3.13) y (n) = wT (n − 1) u (n) , e( n ) = d ( n ) − y ( n ) , (3.14) w (n) = w (n − 1) + μ e ( n) u∗ (n), (3.15) где n – номер текущего временного отсчета; u (n) – вектор отсчетов опорного шума на шаге n ; u∗ (n) – вектор, комплексно сопряженный с вектором u ( n) ; w(n) – вектор оценки весовых коэффициентов фильтра на шаге n ; y (n) – выходной сигнал фильтра на шаге n ; e(n) – сигнал ошибки на шаге n ; d (n) – образцовый сигнал на шаге n ; μ – величина шага адаптации. Соотношение (3.13) описывает в векторной форме процедуру цифровой фильтрации опорного шума u ( n) . Соотношение (3.14) –процедуру вычитания фильтрованного шума y (n) из образцового сигнала d (n) , в результате чего образуется выходной сигнал ошибки e(n) , представляющий собой конечный результат работы адаптивного фильтра. Соотношение (3.15) характеризует процедуру изменения во времени (адаптации) весовых коэффициентов фильтра. Уже в самом названии алгоритма указано, что здесь имеет место винеровская фильтрация [12]. Заметим, что параметры винеровского фильтра изменяются во времени. Однако теперь в отличие от рассмотренных ранее случаев неадаптивной винеровской фильтрации задачей винеровского фильтра является выделение не сигнала, а помехи. Таким образом, в адаптивном фильтре винеровский фильтр играет важную, но вспомогательную роль. Подавление же помехи происходит на следующем этапе обработки – при вычитании (сложении в противофазе) выделенной помехи из смеси «сигнал + помеха». Демонстрационный пример применения адаптивного фильтра для подавления шумовой помехи показан на рис. 3.3 и 3.5. При его построении в качестве основы использован файл dspanc_win32.mdl (MATLAB 7). Центральным блоком схемы рис. 3.3 является блок Normalized LMS. В нем реализованы и цифровой фильтр с переменными параметрами, алго78 ритм адаптации, и операция вычитания (см. рис. 3.4). Приставка Normalized означает, что адаптация весовых коэффициентов происходит не по правилу (3.15), а следующим образом: u∗ ( n) w (n) = w (n − 1) + μ e(n) , (3.16) α + u H ( n) u ( n) где символ H обозначает операцию эрмитового транспонирования, отличающуюся от обычного транспонирования тем, что вектор подвергается еще и комплексному сопряжению; α – малая положительная константа (порядка 10 −8 при одинарной точности вычислений и 10 −16 при двойной точности), добавляемая для подстраховки от случая «деление на ноль». Параметры управляемого фильтра изменяются во времени. Если они изменяются «правильно», выделяемый фильтром шум лучше компенсирует помеху в смеси «сигнал + шум», так что по прошествии достаточного времени «сигнал ошибки» на выходе адаптивного фильтра должен содержать практически чистый речевой сигнал. Рис. 3.5. Содержание блока Acoustic Environment Содержание блока Acoustic Environment (акустическая среда) показано на рис. 3.5, из которого следует, что блок Acoustic Environment предназначен для моделирования двух входных сигналов адаптивного фильтра Normalized LMS. На вход Input (Exterior Mic) подается белый гауссовский шум («опорный» шум), а на вход Desired (Pilot’s Mic) – смесь речевого сигнала с окрашенным шумом. Графики входных и выходных сигналов адаптивного фильтра показаны на рис. 3.6, 3.7 и 3.8. 79 Рис. 3.6. Отрезок незашумленного речевого сигнала Рис. 3.7. Отрезок зашумленного речевого сигнала Рис. 3.8. Отрезок сигнала на выходе адаптивного фильтра 80 Сравнивая приведенные выше рисунки, нетрудно заметить положительный эффект работы адаптивного фильтра. Еще более он проявляется при восприятии результатов фильтрации на слух. 3.7. Метод наименьших квадратов и оптимальный фильтр Винера Пусть случайный входной дискретный сигнал x(k ) обрабатывается нерекурсивным дискретным фильтром порядка N , коэффициенты которого могут быть представлены вектором-столбцом w = [ w0 , w1,…, wN ]T . Выходной сигнал фильтра y ( k ) = uT ( k ) w , (3.17) где u (k ) = [ x(k ), x(k − 1),…, x(k − N )]T – вектор-столбец содержимого линии задержки фильтра на k -м шаге [38]. Кроме того, имеется образцовый (также случайный) сигнал d (k ) . Ошибка воспроизведения образцового сигнала e( k ) = d ( k ) − y ( k ) = d ( k ) − u T ( k ) w . (3.18) Необходимо найти такие коэффициенты w , которые обеспечивают максимальную близость выходного сигнала фильтра к образцовому, т.е. минимизируют ошибку e(k ) . Поскольку e(k ) – также случайный процесс, в качестве меры ее величины разумно принять средний квадрат. Таким образом, оптимизируемый функционал выглядит так: J ( w) = < e 2 (k ) > → min . Алгоритм адаптивной фильтрации, реализуемый в соответствии с соотношениями (2.44) – (2.46), обеспечивает оптимальную винеровскую фильтрацию и основан на поиске минимума целевой функции методом наискорейшего спуска. Этот алгоритм называют также алгоритмом метода наименьших квадратов (LSM – least mean square error). Известны условия сходимости процесса поиска этого минимума [2]: 0 < μ < 2 / λmax , где λmax – максимальное собственное число корреляционной матрицы R сигнала u (k ) , R =< u (k )uT (k ) > . Матрица R имеет размеры ( N + 1) × ( N + 1) . 81 3.8. Рекурсивный метод наименьших квадратов (RLS) Данный метод описывается тремя соотношениями, подобными соотношениям (3.13) – (3.15). Отличие состоит лишь в том, что вместо соотношения (3.15) используется иное [38]: w ( k ) = w ( k − 1) + K ( k ) e ( k ) , (3.19) где K ( k ) – вектор-столбец так называемых коэффициентов усиления, K (k ) = P ( k − 1) u ( k ) , 1 + uT ( k ) P ( k − 1) u ( k ) (3.20) где P(k ) – оценка обратной корреляционной матрицы сигнала: P ( k ) = P ( k − 1) − K ( k ) uT ( k ) P ( k − 1) . (3.21) Главное достоинство алгоритма RLS – быстрая сходимость, которая, однако, достигается за счет более сложных вычислений (по сравнению с алгоритмом LMS). Контрольные вопросы 1. Что такое цифровая фильтрация сигнала? 2. Какие виды цифровой фильтрации более эффективны при обработке речевого сигнала? 3. Каковы отличительные особенности линейной и нелинейной фильтрации? 4. Чем характеризуются НЦФ? 5. Каковы отличительные особенности НЦФ? 6. Почему удобнее применять фильтр порядка 2N для расчета НЦФ? 7. Что такое адаптивная фильтрация и в каких задачах она применяется? 8. Чем характеризуется слепая адаптация? 9. Как определяется наименьшая среднеквадратическая ошибка – LMS? 10. Какова эффективность применения адаптивной фильтрации в среде MATLAB при обработке речевого сигнала? 11. Каковы особенности метода наименьших квадратов и фильтра Винера? 82 Глава 4. МЕТОДЫ ОБРАБОТКИ РЕЧЕВЫХ СИГНАЛОВ, ИСПОЛЬЗУЕМЫЕ В СИСТЕМАХ РАСПОЗНАВАНИЯ РЕЧИ 4.1. Скрытые марковские модели Использование скрытых марковских моделей (СММ) для распознавания речи базируется на следующих предположениях. 1. Речь может быть разбита на сегменты (состояния), внутри которых речевой сигнал может рассматриваться как стационарный. Переход между этими состояниями осуществляется мгновенно. 2. Вероятность появления символа, порождаемого моделью, зависит только от текущего состояния модели и не зависит от предыдущих порожденных символов. По сути, ни одно из этих двух предположений не является справедливым для речевого сигнала. Большое количество исследований посвящено тому, чтобы сгладить недостатки этих предположений [29]. Тем не менее стандартные СММ – основа для большинства современных систем распознавания речи. Существует несколько типов СММ, различающихся по своей топологии (эргодические, лево-правые и др.), с дискретными или непрерывными символами наблюдения. Рассмотрим тип СММ, который был использован компанией «SPIRIT Corp» для построения системы автоматического распознавания речи «SPIRIT ASR Engine». В построении ASR Engine использовались лево-правые СММ без пропусков состояний с непрерывной плотностью наблюдений [5]. 4.1.1. Математическая модель лево-правых СММ На рисунке представлена топология подобной СММ с тремя состояниями. Скрытая марковская модель представляет собой конечный автомат, изменяющий свое состояние в каждый дискретный момент времени t . Переход из состояния Si в состояние S j осуществляется случайным образом с вероятностью aij . В каждый дискретный момент времени модель порождает вектор наблюдений Ot с вероятностью b j (Ot ) . 83 Параметры СММ Для определения скрытой марковской модели необходимо задать следующие элементы. a11 a22 a12 a23 S2 S1 b1(O1) a33 S3 Последовательность векторов наблюдений O = O1 ….. OT Лево-правая СММ без пропусков состояний 1. N – число состояний в модели. В каждый момент времени модель может находиться в одном из N различных состояний S1, S 2,..., S N . В дискретные моменты времени t модель меняет состояние (возможно, переходя при этом опять в то же состояние). В каждый момент времени состояние модели будем обозначать q t . 2. Распределение вероятностей переходов между состояниями A = aij , где aij = P ⎡⎢ qt + 1 = S j qt = Si ⎤⎥ , 1 ≤ i, j ≤ N . ⎣ ⎦ 3. { } B = {b j ( Ot )} (4.1) – распределение плотностей вероятности наблюдений для каждого состояния S i , где b j (O t ) = P(O t | q t = j ) , 1 ≤ t ≤ T ,1 ≤ j ≤ N ; (4.2) Ot – вектор наблюдений в момент времени t . В непрерывных СММ величина b j (O t ) моделируется конечной гауссовской смесью вида M (4.3) bi (Ot ) = ∑ C ik N (Ot , μ jk , U jk ) , k =1 где C ik – весовой коэффициент k -го компонента смеси в состоянии j , M – количество компонентов смеси, N – гауссовская плотность вероятности. Коэффициенты C ik удовлетворяют стохастическим ограничениям 84 M ∑ C i k = 1, 1 ≤ i ≤ N , 1 ≤ k ≤ M k =1 C i k ≥ 0. ⎫ ⎪⎪ ⎬ ⎪ ⎪⎭ (4.4) Плотность N характеризуется вектором средних значений μ jk и ковариационной матрицей U jk для k -го компонента смеси в состоянии S j: N (Ot , μ j k , U j k ) = = 1 T ⎡ 1 ⎤ e x p ⎢ − (Ot − μ j k ) U −j k1(Ot − μ j k ) ⎥ , ⎣ 2 ⎦ (2π )n U j k (4.5) где n – размерность вектора наблюдений O t . 4. Начальное распределение вероятностей состояний π = {π i} 1≤ i ≤ N . (4.6) π i = P [q1 = S i ] , Из вышесказанного нетрудно увидеть, что полное описание СММ предполагает задание двух параметров модели ( N , M ) , множества допустимых символов наблюдения, а также трех вероятностных мер ( A, B, π ) . Далее для обозначения всего множества параметров модели используется краткая запись λ = ( A, B, π ) . Применение СММ Для того чтобы использовать СММ в практических задачах, необходимо решить три проблемы [41]. П р о б л е м а 1 . Пусть заданы последовательность наблюдений O = O1, …, OT и модель λ = ( A, B, π ) . Как эффективно вычислить вероятность P (O | λ ) появления этой последовательности наблюдений для данной модели? П р о б л е м а 2 . Пусть заданы последовательность наблюдений O = O1, …, OT и модель λ . Как выбрать последовательность состояний Q = q1,…, qT , которая с наибольшей вероятностью для данной модели P(O, Q | λ ) порождает заданную последовательность наблюдений? П р о б л е м а 3 . Каким образом нужно подстроить параметры модели λ = ( A, B, π ) для того, чтобы максимизировать P(O | λ ) ? Далее последовательно будут рассмотрены эти три проблемы и алгоритмы, приводящие к их решению. 85 4.1.2. Алгоритм прямого-обратного хода (решение проблемы 1) Наиболее прямой путь для вычисления вероятности P (O | λ ) – перечислить все возможные последовательности состояний заданной длины T. Так, для фиксированной последовательности Q = q1,…, qT вероятность ее появления для данной модели (4.7) P(Q | λ ) = π q a q q a q q ...a q (T −1) qT . 1 1 2 2 3 Вероятность появления заданной последовательности наблюдений для этой фиксированной последовательности состояний при условии независимости наблюдений определяется как (4.8) P(O | Q, λ ) = b q (O1)b q (O 2)...b q (OT ) . 1 2 T Совместная вероятность последовательностей O и Q – это произведение вероятностей P(O, Q | λ ) = P(O | Q, λ ) P(Q, λ ) . (4.9) Вероятность появления последовательности наблюдений O для данной модели вычисляется как сумма всех эти совместных вероятностей для всех возможных последовательностей состояний Q : P(O | λ ) = Q ∑ P(O | Q, λ ) P(Q | λ ) = ∑ π q bq (O1)aq q bq (O2 )aq q … aq q bq (OT ). T −1 T T 1 1 1 2 2 2 3 =Q (4.10) Из выражения (4.10) следует, что необходимо выполнить порядка 2T умножений для каждой из N T последовательности состояний Q . Таким образом, при прямом подсчете вероятности P (O | λ ) требуется провести порядка 2TN T умножений. Даже для небольших чисел, например, N = 10 и T = 5 , необходимо порядка 106 операций умножения. Для прак- тического решения первой проблемы требуется более эффективная процедура, которая называется процедурой прямого – обратного хода (Forward – backward procedure ) [41]. Существует две модификации алгоритма, равноценные по вычислительным затратам, – алгоритм прямого хода и алгоритм обратного хода. Они различаются выбором переменной, прямой или обратной, предпочтительной в каждом конкретном случае. Алгоритм прямого хода. Введем так называемую прямую переменную at (i ) , определяемую выражением at (i ) = P(O1, O 2,..., O t ; q t = S i | λ ) , (4.11) которая представляет собой вероятность появления для данной модели частичной последовательности наблюдений O1, O 2,..., O t до момента t и 86 состояний S i в этот момент времени. Значение переменной at (i ) вычисляется по индукции следующим образом: 1) инициализация: a1 (i ) = π ib i(O1) , 1 ≤ i ≤ N ; (4.12) 2) индуктивный переход: ⎡ N ⎤ (4.13) a t + 1( j ) = ⎢ ∑ a t (i )a ij ⎥ b j (O t + 1) , 1 ≤ t ≤ T − 1 , 1 ≤ i ≤ N ; ⎢⎣i = 1 ⎥⎦ 3) окончание: N (4.14) P(O | λ ) = ∑ aT (i ) . i =1 Для вычисления вероятности P (O | λ ) , таким образом, требуется уже порядка NTT вычислительных операций [28]. Для взятых в качестве примера чисел N = 10 и T = 5 количество операций умножения составляет около 500, что в 2000 раз меньше, чем для прямых вычислений. Алгоритм обратного хода. Аналогичным образом можно ввести обратную переменную β t (i ) , определяемую выражением (4.15) β t (i) = P(O t + 1,O t + 2,..., OT | q t = S i, λ ) , которая для заданной модели λ представляет собой совместную вероят- ность появления частичной последовательности наблюдений от момента времени t + 1 до T и состояния S i в момент времени t . Значения обратной переменной также можно вычислить по индукции: 1) инициализация: βt (i ) = 1, 1 ≤ i ≤ N ; (4.16) 2) индукция: N β T (i ) = ∑ aij b j (Ot + 1) β t + 1( j ), j =1 для всех t = T − 1, T − 2,…, 1, 1 ≤ i ≤ N ; N (4.17) (4.18) 3) окончание: P (O | λ ) = ∑ π ibi (O i ) β 1(i ) . i =1 4.1.3. Алгоритм Витерби (решение проблемы 2) Рассмотрим решение второй проблемы, которая заключается в поиске оптимальной последовательности состояний, соответствующих заданной последовательности наблюдений. Существует несколько приемлемых критериев оптимальности. 87 Алгоритм Витерби используется при лингвистическом декодировании и автоматическом извлечении параметров статистической модели. N (4.19) Yt (i ) = P(qt = Si | O, λ ), ∑ Yt (i ) = 1 . i =1 Введем переменную, которая представляет собой вероятность пребывания системы в момент t в состоянии S i при заданной последовательности наблюдений O и модели λ . Используя прямую и обратную переменные, уравнение (4.19) можно записать в следующем виде: qt = arg max ⎡⎣Yt (i ) ⎤⎦ , 1 ≤ t ≤ T , (4.20) где Yt (i ) соответствует частичной последовательности наблюдений O1, O1,…, Ot и состоянию S i в момент t , а β t (i ) – остатку последовательности наблюдений Ot + 1,Ot + 2 ,…, OT и заданному состоянию S i в момент t . Используя Yt (i ) , можно вычислить наиболее вероятное состояние qt в момент t как состояние, определяемое выражением qt = arg max ⎡⎣Yt (i ) ⎤⎦ , 1 ≤ t ≤ T ; 1 < i < N . (4.21) Описание алгоритма Для того чтобы по заданной последовательности наблюдений O1, O1,…, Ot найти наилучшую последовательность состояний { } Q = q1 q2 … qT , определим следующую величину: (4.22) δ t (i ) = max q q … q P ⎡⎣ q1q2 … qt = i, O1O2 …Ot | λ ⎤⎦ , 1 2 t −1 которая представляет собой максимальную вероятность того, что при заданных t первых наблюдениях последовательность заканчивается в момент t в состоянии S i . По индукции получаем δ t + 1( j ) = ⎡⎢ max δ t (i ) aij ⎤⎥ b j (Ot + 1) , ⎣ ⎦ или ⎡ max δ t (i )aij ⎤ (4.23) δ t + 1( j ) = b j (Ot + 1) ⎢ ⎥ , 1 ≤ i ≤ N; 1 ≤ t ≤ T − 1. i N ≤ ≤ 1 ⎣ ⎦ Для того чтобы затем восстановить последовательность состояний для всех значений t и j , необходимо хранить значения аргументов, которые максимизируют вероятность (4.23). Для этой цели используют массив ψ t ( j ) . Полную процедуру, требуемую для определения последовательности состояний, можно теперь сформулировать следующим образом: 88 1) инициализация: δ1(i ) = π ibi (O1), 1 ≤ i ≤ N , ψ1(i ) = 0 ; (4.24) 2) рекурсия: δ t ( j ) = max1 ≤ i ≤ N ⎢⎡δ t − 1( j )aij ⎥⎤ b j (Ot ), ⎫ ⎪ ⎣ ⎦ ψ t ( j ) = arg max1 ≤ i ≤ N ⎡⎢δ t − 1( j )aij ⎤⎥ ; ⎣ ⎦ ⎬ 2 ≤ t ≤ T, 1≤ j ≤ N ⎪ ⎭ (4.25) 3) окончание: (4.26) P∗ = max1 ≤ i ≤ N ⎡⎣δT (i ) ⎤⎦ , qt∗ = arg max1 ≤ i ≤ N ⎡⎣δT (i ) ⎤⎦ ; 4) восстановление пути (последовательности состояний): qt∗ = ψ t + 1(qt∗+ 1), t = T − 1, T − 2,…,1 . Реализация алгоритма Витерби аналогична (за исключением шага восстановления) процедуре прямого хода. Основное отличие – использование вместо процедуры суммирования процедуры максимизации. Кроме того, алгоритм Витерби может быть применен для решения первой проблемы (определения вероятности появления заданной последовательности наблюдений для данной модели), поскольку на окончательном шаге алгоритма получают вероятность для всей предшествующей последовательности наблюдений. 4.1.4. Алгоритм Баума – Велча (решение проблемы 3) Проблема переоценки параметров модели λ = ( A, B, π ) по заданной последовательности наблюдений – наиболее трудоемкая в вычислительном плане проблема СММ. Используя итеративные процедуры можно локально максимизировать вероятность P (O | λ ) . Одна из таких процедур – метод переоценки Баума – Велча (Baum – Welch method), или ЕМ-метод (Expectation-maximization). Введем переменную (4.27) ξ t (i, j ) = P(q t = S i, q t + 1 = S j | O, λ ) , которая определяет вероятность того, что при заданной последовательности наблюдений в моменты времени t и t + 1 система будет соответственно находиться в состояниях S i и S j . Используя определения прямой и обратной переменных (4.11 и 4.15), можно записать: 89 ξ t (i, j ) = at ( j )aij b j (Ot + 1) β t + 1( j ) = P(O | λ ) at ( j )aij b j (Ot + 1) β t + 1( j ) = . (4.28) N N ∑ ∑ at ( j )aij b j (Ot + 1) β t + 1( j ) i =1 j =1 Введем также переменную y t (i ) , являющуюся апостериорной вероятностью того, что при заданной последовательности наблюдений O система в момент времени t будет находиться в состоянии S i : N (4.29) y t (i ) = ∑ ξ t (i, j ) . j =1 Если величину y t (i ) просуммировать по всем t , то результат можно рассматривать как ожидаемое время пребывания системы в состоянии S i . Аналогичным образом результат суммирования ξ t (i, j ) по всем t можно рассматривать как ожидаемое число переходов из состояния S i в S j : T −1 (4.30а) ∑ y t (i ) – ожидаемое число переходов из S i ; t =1 T −1 (4.30б) ∑ ξ t (i, j ) – ожидаемое число переходов из S i в S j . t =1 Используя перечисленные выше формулы можно получить переоценку параметров СММ: π i = y1(i ) , (4.31а) T −1 ∑ ξ t (i, j ) aij = t = 1 , (4.31б) T −1 ∑ y t (i ) t =1 M (4.31в) b j (O t ) = ∑ C jk N (Ot , μ jk ,U jk ) . k =1 Переоценка компонентов C jk , μ jk , U jk в выражении (4.31в) выполняется по следующим формулам: 90 T −1 ∑ y t ( j, k ) C jk = t = 1 , T M ∑ ∑ y t ( j, k ) t k =1 T ∑ yt ( j , k )Ot μ jk = t = 1 , T ∑ yt ( j, k ) t (4.32а) (4.32б) T T ∑ yt ( j , k )(Ot − μ jk )(Ot − μ jk ) U jk = t = 1 , (4.32в) T ∑ yt ( j, k ) t где y ( j , k ) – вероятность того, что при заданной последовательности наблюдений в момент времени t модель находится в состоянии j , причем наблюдаемый в этот момент вектор Ot порожден k -м компонентом смеси, т. е. ⎡ ⎤⎡ ⎤ ⎢ ⎥⎢ ⎥ ⎢ a t ( j ) β t ( j ) ⎥ ⎢ C jk N (O t , μ jk ,U jk ) ⎥ (4.33) y t ( j, k ) = ⎢ ⎥⎢ M ⎥. N ⎢ ∑ a ( j ) β ( j ) ⎥ ⎢ ∑ C N (O , μ ,U ) ⎥ t jk t jk jk t ⎥⎢ ⎢ ⎥⎦ 1 1 = = j k ⎣ ⎣ ⎦ Переоценка параметров модели λ по приведенным формулам приводит к возрастанию функции правдоподобия (4.34) P (O | λ ) ≥ P (O | λ ) . 4.2. Линейное предсказание Пусть имеется речевой сигнал S (n) . Рассмотрим проблему предсказания текущего значения на основании предыдущего, т.е. S (n) = α S (n − 1) . Предсказание будет выполнено с ошибкой e(n) = S (n) − S (n) . α – коэффициент, выбираемый из условия минимизации ошибки [3]. Попробуем определить оптимальное значение α . Среднее значение ошибки предсказания за короткий период E = ∑ e2 (n) = ∑ [ S (n) − α S (n − 1) ]2 . n n 91 Минимизируем ошибку, вычисляя частные производные E и приравнивая их к нулю: E = ∑ ( S 2 (n) − 2α S (n) S (n − 1)α 2 S 2 (n − 1)) . n ∂E = 0 = ∑ −2S (n) S (n − 1) + 2α S 2 (n − 1) ∂α n или 2 ∑ S (n) S (n − 1) = α ∑ S (n − 1) , n n следовательно, ∑ S (n) S (n − 1) c(1,0) r (1) α=n = = . (4.35) 2 c r (1,1) (0) ∑ S (n − 1) n Коэффициент α связан с корреляционной структурой сигнала ( α < 1 ) и не зависит от уровня энергии сигнала. Общий случай Пусть имеется речевой сигнал S (n) . Задача заключается в предсказании его текущего значения на основании k предыдущих, т.е. p S ( n) = ∑ α k S ( n − k ) . k =1 Ошибка предсказания определяется следующим образом: p e(n) = S (n) − ∑ α k S (n − k ) , где α k – коэффициенты минимизаk =1 ции ошибки. Минимизируем ошибку путем отыскания оптимальных значений α k . { } { } Определим среднее значение ошибки предсказания за короткий период: 2 p ⎧⎪ ⎫⎪ 2 E = ∑ e ( n) = ∑ ⎨ S ( n) − ∑ α k S ( n − k ) ⎬ = n n ⎩⎪ k =1 ⎭⎪ 2 p ⎧⎪ p ⎫⎪ 2 = ∑ S ( n) − 2 ∑ α k ∑ S ( n) S ( n − k ) + ∑ ⎨ ∑ α k S ( n − k ) ⎬ = n k =1 n n ⎩⎪k = 1 ⎭⎪ 2 p p ⎧ ⎫ ⎧ ⎫ ⎪ ⎪ ⎪ ⎪ = ∑ S 2 ( n) − ∑ ⎨ 2 S (n) ∑ α k S ( n − k ) ⎬ + ∑ ⎨ ∑ α k S ( n − k ) ⎬ . (4.36) n n ⎩⎪ k =1 ⎭⎪ n ⎩⎪k = 1 ⎭⎪ 92 Минимизируем ошибку относительно {αl } для всех значений 1 < l < p , вычисляя частные производные E и приравнивая нулю: ⎧⎪ p ⎫⎪ ∂E = 0 = −2∑ S (n) S (n − 1) + 2∑ ⎨ ∑ α k S (n − k ) ⎬ S (n − l ) . ∂αl n n ⎩⎪k = 1 ⎭⎪ Переставляя члены p ⎛ ⎞ ∑ S (n) S ( n − 1) = ∑ α k ⎜⎜ ∑ S (n − k )S (n − l ) ⎟⎟ , получим n k =1 ⎝ n ⎠ p c(l ,0) = ∑ α k c(k , l ) . (4.37) k =1 Это уравнение известно как уравнение линейного предсказания Юла – Волкера (Yule – Walker), α k – коэффициенты линейного предсказа- ния. Для его решения есть два метода. Ковариационный метод Уравнения для каждого значения l выразим в матричной форме: c = Cα , где ⎡ α1 ⎤ ⎡ c(1,0) ⎤ ⎡ c(1,1) c(1,2) … c(1, p) ⎤ ⎢ ⎥ ⎢ c(2,1) c(2,2) … c(2, p) ⎥ ⎢ c(2,0) ⎥ ⎢α 2 ⎥ ⎢ ⎥ ⎥. α =⎢ ⎥, C = , c =⎢ ⎢ … ⎥ ⎢ … … … … … ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢α p ⎥ c( p,1) c( p,2) … c( p, p) ⎦ c( p,0) ⎦ ⎣ ⎣ ⎣ ⎦ Решение этого уравнения может быть получено с использованием обратной матрицы C −1 . α = C −1c . Ковариационная матрица симметрична. Первый алгоритм, используемый для нахождения решения этого уравнения, известен как разложение Чолеский (Cholesky). Автокорреляционный метод Найдем решение уравнения линейного предсказания методом автокорреляции: α = R −1r , где ⎡ α1 ⎤ r (1) ⎡ r (0) ⎢ ⎥ ⎢ r (1) r (0) ⎢α 2 ⎥ α =⎢ ⎥, R=⎢ ⎢ … … … ⎢ ⎥ ⎢ ⎢α p ⎥ ⎣ r ( p − 1) r ( p − 2) ⎣ ⎦ 93 … r ( p − 1) ⎤ ⎡ r (1) ⎤ ⎢ r (2) ⎥ … r ( p − 2) ⎥ ⎥, r =⎢ ⎥. ⎢ … ⎥ … … ⎥ ⎥ ⎢ ⎥ r (0) ⎦ … ⎣ r ( p) ⎦ Матрица R симметрична, все элементы по диагонали равны. Это означает, что − обратная матрица R −1 всегда существует; − корни уравнения находятся в левой половине плоскости. Процесс линейного предсказания может рассматриваться как фильтрация. Отмечая, что p e(n) = S (n) − ∑ α k S (n − k ) и E ( z ) = S ( z ) A( z ) , k =1 получаем p A( z ) = 1 − ∑ α k z −k , k =1 1 где A( z ) называется анализатором, – синтезатором. A( z ) Рассчитаем ошибку линейного предсказания. Вернемся к выражению для ошибки (4.36) и представим его в разных формах: p – автокорреляционный метод: E = r (0) − ∑ α k r (k ) ; k =1 p – ковариационный метод: E = c(0,0) − ∑ α k c(0, k ) . k =1 Линейное предсказание имеет многочисленные формы, включая метод ковариации, автокорреляции, решетки и др. Эти формы изучаются в таких дисциплинах, как идентификация систем, обработка сигналов, теория вероятностей, исследование операций. 1. 2. 3. 4. 5. 6. 7. 8. 9. Контрольные вопросы Каковы особенности СММ в задачах распознавания речи? Каковы параметры лево-правых СММ? Какие проблемы необходимо решать при использовании СММ? Каковы отличительные особенности алгоритма прямого – обратного хода? Каковы особенности алгоритма Витерби? Каковы особенности алгоритма Баума – Велча? Что такое линейное предсказание и как оно определяется? Каковы методы решения уравнения линейного предсказания? Как определяется ошибка линейного предсказания? 94 Глава 5. АНАЛИЗ РЕЧИ Речь представляется файлом отсчетов, полученных в результате ее оцифровки. Анализ позволяет извлечь из него полезную информацию, которая может относиться к разному уровню обработки данных: звуков, слов, фраз и т. д., вплоть до понимания смысла. В настоящей главе рассматриваются задачи нижнего уровня. Речь сегментируется по времени на отрезки приблизительно по 20 мс, в пределах которых сигнал считается стационарным. Анализ опирается на спектральные методы. 5.1. Управление окнами Для ограничения частотного спектра или временной области задания сигналов применяются частотные или временные окна. Окна могут быть различного типа. Они характеризуются графическими зависимостями своих коэффициентов и различными специфическими параметрами. Наиболее широко используются гауссовы окна, дающие малые искажения спектра в процессе его ограничения в окнах. Окна представляют собой зависимость коэффициента передачи W ( k ) от номера отсчета k [39, 40, 43]. Использование окон лежит в основе кратковременного, или оконного преобразования Фурье. Это преобразование реализуется, в частности, при построении спектрограмм в плоскости частота – время. В таких спектрограммах амплитуды составляющих спектра задаются функциональной окраской. Спектрограммы более информативны, чем обычные спектры сигналов. MATLAB содержит целый ряд стандартных весовых функций [23, 47]. Они возвращают векторы отсчетов, которые могут использоваться в качестве одного из параметров разнообразных функций непараметрического спектрального анализа. В рассмотренных ниже функциях в качестве параметра принимают требуемую длину вектора (n) , которая должна быть целым положительным числом, и возвращают вектор-столбец W . При n = 1 все функции возвращают значение «1». Амплитудный спектр весовой функции соответствует частотной характеристике нулевого канала ДПФ при использовании данной весовой функции. При рассмотрении конкретных функций графики их амплитудных спектров строятся в логарифмическом масштабе. Чтобы обеспечить на нулевой частоте значение спектральной функции, равное единице (0 дБ), перед вычислением спектра весовые функции нормируются: делятся на сумму своих отсчетов. 95 Графики спектров строятся функцией freqz. Поскольку фазовый спектр для всех весовых функций линейно зависит от частоты, его графики не представляют интереса и потому не приводятся. Для повышения наглядности частотная ось градуируется в номерах каналов ДПФ, для этого при вызове функции freqz указана частота дискретизации, равная длине окна. Существует множество применяемых в ЦОС окон: окно Бартлетта; окно Блэкмана; окно Чебышева; окно Хэннинга; окно Кайзера; треугольное окно; прямоугольное окно и окно Хэмминга [23, 43]. Рассмотрим реализацию основных окон, широко применяемых в обработке речи. Окно Чебышева. Отсчеты окна рассчитываются путем вычисления обратного преобразования Фурье от его частотной характеристики: ⎛ ⎛ ω ⎞⎞ cos ⎜ (n-1)arccos ⎜ π ⎟ ⎟⎟ ⎜ ⎝ ωd ⎠ ⎠ ⎝ , (5.1) S (ω ) = ch((n − 1)arch(α )) где ⎛ arch(10 β / 20) ⎞ ⎟⎟ . ⎜ n 1 − ⎝ ⎠ Здесь β – степень подавления боковых лепестков, дБ; n – требуемое количество отсчетов окна. Для окна Чебышева все боковые лепестки имеют одинаковый заданный уровень. В MATLAB окно Чебышева w = =chebwin(n,beta) задает n-точечный вектор коэффициентов с пульсациями на уровне beta ( β ) (по умолчанию 100 дБ) в полосе задержания относительно амплитуды в полосе пропускания. α = ch ⎜ Рис. 5.1. Окно Чебышева Рис. 5.2. Амплитудный спектр окна Чебышева 96 На рис. 5.1, 5.2 приведены графики окна Чебышева и его амплитудного спектра при n = 16 для уровня боковых лепестков, равного 40 дБ. w = chebwin(16, 40); w = w/sum(w); plot (w); figure; [h, f] = freqz (w, 1, [], 16); plot (f, 20*log10(abs(h))); ylim ([-60 0]); grid on Как видно, с уменьшением уровня боковых лепестков главный лепесток расширяется. Окно Кайзера. Отсчеты окна Кайзера рассчитываются по формуле ⎛ 2⎞ ⎛ 2k − n − 1 ⎞ ⎟ ⎜ I0 β 1− ⎜ ⎟ ⎜ ⎝ n −1 ⎠ ⎟ ⎝ ⎠ , w(k ) = I 0(β ) k= 1, 2, …, n. (5.2) Здесь I 0 – модифицированная функция Бесселя первого рода нулевого порядка. Чем больше β , тем больше доля энергии, сосредоточенной в главном лепестке спектра (и тем шире этот лепесток), и тем меньше уровень боковых лепестков. На практике уровень значения β находится в пределах от 4 до 9. Параметр β характеризует затухание боковых лепестков окна. Для получения из окна Кайзера фильтра типа КИХ параметр β выбирается из формулы ⎧ 0 ,1102( α − 8,7 ), α > 50 ⎪⎪ β = ⎨ 0 ,5842( α − 21 )0 ,4 + 0 ,07886( α − 21 ), 50 ≥ α ≥ 21 ⎪ 0 , 0 < α < 21. ⎪⎩ В MATLAB окно Кайзера задается функцией w = kaiser (n, beta). На рис. 5.3, 5.4. приведены графики окна Кайзера и его амплитудного спектра при n = 16 для двух указанных выше значений β . w1 = kaiser (16, 4); w2 = kaiser (16, 9); w1 = w1/sum(w1); w2 = w2/sum(w2); plot(w1); hold on; plot(w2, '--'); hold off; figure; [h1, f]= freqz(w1, 1, [], 16); h2 = freqz(w2, 1, [], 16); plot (f, 20*log10(abs(h1))); hold on; plot (f, 20*log10(abs(h2)), '--'); hold off; ylim([-100 0]); grid on 97 Из графиков видно, что при β = 4 главный лепесток имеет ширину 1,75 (за единицу принято расстояние между соседними каналами частотного анализа), а уровень боковых лепестков составляет –32,5 дБ. При β = 9 главный лепесток расширяется примерно до 3,2, а уровень боковых лепестков падает до –66 дБ. Рис. 5.3. Окно Кайзера: ––––– – β =4, - - - - - – β =9 Рис. 5.4. Амплитудный спектр окна Кайзера Прямоугольное окно. Отсчеты прямоугольного окна определяются следующим образом: ⎧1, при 0 ≤ k < n; w(k ) = ⎨ . 0, другое. ⎩ (5.3) В MATLAB прямоугольное окно реализуется функцией w = boxcar(n). На рис. 5.5, 5.6 приведены графики прямоугольного окна и его амплитудного спектра при n = 8. Рис. 5.5. Прямоугольное окно Рис. 5.6. Амплитудный спектр прямоугольного окна 98 w = boxcar(8); w = w/sum(w); plot(w); figure; [h, f]= freqz(w, 1, [], 16); plot (f, 20*log10(abs(h))); ylim([-50 0]); grid on Уровень первого бокового лепестка составляет 13,0 дБ. Окно Хэмминга. Коэффициенты n-точечного окна Хэмминга вычисляются по формуле k ⎞ ⎛ (5.4) w(k + 1) = 0 ,55 − 0 ,46cos ⎜ 2π ⎟ , k = 0, 1, …, n–1. n −1⎠ ⎝ В MATLAB окно Хэмминга задается функцией w = hamming (n, ['sflag']). Параметр sflag может иметь следующие значения: symmetric – задает симметричное окно (используется по умолчанию), для которого w(k) = w(n+1–k) ; periodic – создается слегка несимметричное окно, синусоидальные компоненты которого будут аккуратно стыковаться при соединении нескольких экземпляров окна. При задании периодического варианта n–1 в знаменателе формулы (5.4) заменяется на n. Возможна иная трактовка: выполняется расчет по приведенной формуле для окна длиной n+1, затем последний элемент отбрасывается. На рис. 5.7, 5.8 приведены графики окна Хэмминга и его амплитудного спектра при n = 16. w = hamming(16); w = w/sum(w); plot (w); figure; [h, f] = freqz (w, 1, [], 16); plot (f, 20*log10(abs(h))); ylim ([-80 0]); grid on 99 Как видно, уровень первого бокового лепестка составляет –40 дБ. Рис. 5.7. Окно Хэмминга Рис. 5.8. Амплитудный спектр окна Хэмминга 5.2. Кратковременный анализ Фурье 5.2.1. Кратковременное преобразование Фурье При обработке речи записывают N отсчетов сигнала, начинающихся с N0 , применяют оконную функцию [11, 38]: ⎧⎪ wn xN + n ,...0 ≤ n < N , 0 xn′ = ⎨ . 0 , для других n, ⎪⎩ (5.5) затем выполняют ДПФ (2.9). Результат определяется уравнениями: 2π kn −i N 1 − 2π k i ω N , X (k ) = X e = ∑ x ( n)e , ω= N n=0 ( ) 0≤k ≤ N, (5.6) где X (k ) – массив из N комплексных чисел, эквивалентный массивам из N реальных и N мнимых чисел. Обратное кратковременное дискретное преобразование Фурье (ОДПФ) может быть также определено по формуле 2π nk 1 N −1 xn = ∑ X k ei N , 0 ≤ k ≤ N . N n=0 100 (5.7) 5.2.2. Практическое применение кратковременного преобразования Фурье Возьмем 512 отсчетов речевого сигнала, например слово «sig», график которого приведен на рис. 5.9. Рис. 5.9. Фрагмент гласного звука в прямоугольном окне В среде MATLAB выполним FFT и выведем график модуля спектра (рис. 5.10). >> abs(fft(sig)) Рис. 5.10. Амплитудный спектр На рис. 5.9 видна резкая неоднородность (разрыв) на границах. Применение окна Хэмминга сокращает ее (рис. 5.11) [11]. 101 >> hamming(512) .* sig Рис. 5.11. Фрагмент гласного звука в окне Хэмминга В результате гармоническая структура сигнала становится более заметной (рис. 5.12). >> abs(fft(hamming(512) .* sig)) Рис. 5.12. Амплитудный спектр в окне Хэмминга Тот же спектр в логарифмическом масштабе представлен на рис. 5.13. >> log10(abs(fft(hamming(512) .* sig))); 102 Рис. 5.13. Амплитудный спектр в логарифмическом масштабе Чтобы продемонстрировать эффект размера окна, вышеупомянутый анализ повторяется для окна Хэмминга длиной 64 (рис. 5.14 и 5.15). Рис. 5.14. Фрагмент гласного звука в окне Хэмминга длиной 64 103 Рис. 5.15. Амплитудный спектр в окне Хэмминга длиной 64 5.3. Кепстральный анализ Схема кепстрального анализа показана на рис. 5.16. Сегмент речевого сигнала после обработки оконной функцией подвергается преобразованию Фурье. Речь Окно ДПФ Log ОДПФ Кепстральный анализ Рис. 5.16. Схема кепстрального анализа Для большинства приложений обработки речи необходим только спектр амплитуды log( S (eiθ ) ) . (5.8) Медленно меняющиеся компоненты log( S (eiθ ) ) характеризуют низкие частоты. Следовательно, применение кепстрального анализа с использованием преобразования Фурье – это естественный способ их выделения. Результат применения кепстрального анализа для образца речи, представленного на рис. 5.11, 5.12, 5.13, показан на рис. 5.17. >> ifft (log(abs(fft(hamming(512) .* sig)))) 104 Рис. 5.17. Полный реальный кепстр Заметим, что большинство значимых свойств наблюдается в начале и в пиках спектрограммы. Более подробно первые 25 кепстральных коэффициентов представлены на рис. 5.18. 0.5 0.4 0.3 0.2 0.1 0 -0.1 -0.2 0 5 10 15 20 Рис. 5.18. Первые кепстральные коэффициенты 105 25 5.4. Z-преобразование Удобный способ анализа дискретных последовательностей – Z-преобразование (Z-transform). Последовательности чисел { x(n)} ставится в соответствие функция комплексной переменной z , определяемая следующим образом: ∞ (5.9) X ( z ) = ∑ x( n )z − n . n = −∞ X ( z ) является взвешенной суммой, которая определена только для тех значений z , при которых ряд (5.9) сходится [11, 43] . Свойства Z-преобразования Рассмотрим некоторые наиболее важные свойства Z-преобразования, полезные при его применении. 1. Z-преобразование – линейное преобразование, для него справедлив принцип суперпозиции. Если Y ( z ) , X1 ( z ) и X 2 ( z ) – Z-преобразования последовательностей y (n) , x1 (n) , x2 (n) соответственно, то для любых действительных α и β справедливы соотношения: (5.10) y (n) = α x1 (n) + β x2 (n) ⇒ Y ( z ) = α X1 ( z ) + β X 2 ( z ) . 2. Сдвиг последовательности (задержка). Если Y ( z ) , X ( z ) – Z-преобразования последовательностей y (n) , x( n) , то для y (n) = x(n − n0 ) , где n0 – целое число, справедливо соотношение Y ( z) = z − n0 X ( z) . (5.11) Так, при задержке сигнала на один такт y(n) = x(n −1) , Y (z ) = z −1X (z ) , т.е. Z-преобразование исходной последовательности умножается на z −1 . −n Таким образом, множитель z 0 является оператором задержки дискретной последовательности на n0 тактов. 3. Свертка последовательностей. Свертка двух бесконечных дискретных последовательностей { x(k )} и {h(n − k )} определяется следующим образом: ∞ (5.12) y (n) = ∑ x (k )h (n − k ) . k = −∞ Если Z-преобразования последовательностей y (n) , x( n) , h( n) равны Y ( z ) , X ( z ) и H (n) соответственно, то справедливо соотношение Y ( z ) = X ( z ) H ( z ) , которое означает, что Z-преобразование свертки равно произведению Z-преобразований свертываемых последовательностей. 106 Обратное Z-преобразование Обратный переход от X ( z ) к последовательности x( n) определяется соотношением [27] 1 (5.13) x ( n) = X ( z ) z n − 1dz , ∫ 2π i C где C – замкнутый контур, который включает z = 0 . Обратное Z-преобразование представляет собой интеграл по любому замкнутому контуру с направлением обхода против часовой стрелки. Контур расположен в области сходимости и окружает начало координат. 5.5. Анализ с использованием линейного предсказания Анализ речи с использованием линейного предсказания (ЛП) – исторически один из самых важных методов анализа речи [11]. p ˆ Sn = ∑ ai Sn − i , (5.14) i =1 Sn – речевой сигнал с n отсчетами, ai – коэффициенты предсказания. Этот линейный фильтр имеет передаточную функцию H ( z) = 1 p 1 − ∑ i = 1 a z −i i (5.15) . При правильном выборе параметров модель ЛП может приблизиться к спектру огибающей для всех звуков речи. Оценка параметров ЛП. Допустим, имеется N отсчетов речи. Вычислим оценку ai из условия минимальной среднеквадратической ошибки. Эти оценки могут рассматриваться как самые вероятные параметры, если предполагается, что распределение ошибок является гауссовским и нет ограничений на значения ai . p ˆ (5.16) Ошибка en = Sn − S = Sn − ∑ ai Sn − i . i =1 Следовательно, суммированная среднеквадратическая ошибка E по конечному окну длиной N 2 p N − 1 2 N − 1⎛ ⎞ (5.17) E = ∑ en = ∑ ⎜ Sn − ∑ ak Sn − k ⎟ . ⎜ ⎟ n=0 n = 0⎝ k =1 ⎠ Минимум E получается, когда частные производные равны нулю для всех параметров ak . 107 Уравнение (5.17) квадратичное относительно ak , поэтому решение существует, причем единственное. Дифференцируя уравнение (5.17) по a j и принимая их равными нулю, получаем систему p уравнений: p N − 1⎛ ⎛ ⎞ ∂E = 0 = − ∑ ⎜ 2 ⎜ Sn − ∑ ak Sn − k ⎟ Sn − ⎜ ⎟ ∂a j n = 0 ⎜⎝ ⎝ k =1 ⎠ N −1 N −1 p = −2 ∑ Sn Sn − j + 2 ∑ ∑ ak S n − k Sn − n=0 n = 0k =1 или ⎞ j ⎟⎟ ⎠ j. Реконфигурация уравнения (5.18) дает p N −1 N −1 ∑ Sn Sn − j = ∑ ak ∑ Sn − k Sn − j . n=0 k =1 n = 0 Определим матрицу ковариации φ с элементами φi, k : N −1 φ i, k = ∑ S n − i S n − k . n=0 Запишем уравнение (5.20) как p φi,0 = ∑ φi, k ak , k =1 φ1, p ⎞ ⎛ φ1,0 ⎞ ⎛ φ1,1 φ1,2 φ1,3 ⎟ ⎛ a1 ⎞ ⎜ ⎟ ⎜ φ 2, p ⎟ ⎜ a 2 ⎟ ⎜ φ 2,0 ⎟ ⎜ φ 2,1 φ 2,2 φ 2,3 ⎟⎜ ⎟ ⎜ ⎟ ⎜ φ 3, p ⎟ ⎜ a3 ⎟ . ⎜ φ 3,0 ⎟ = ⎜ φ 3,1 φ 3,2 φ 3,3 ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ... ⎟ ⎜ ⎟ ⎜⎝ a p ⎟⎠ ⎜φ ⎟ ⎜φ φ φ φ p ,0 p,2 p,3 p, p ⎠ ⎝ ⎠ ⎝ p,1 В матричной форме Φ 0 = Φ a A . (5.18) (5.19) (5.20) (5.21) (5.22) (5.23) Решение находим с использованием обратной матрицы (5.24) A = Φ −1Φ 0 . Заметим, что матрица Φ симметрична, т.е. φi, k = φk , i , и эта симметрия может использоваться в инвертировании Φ . 108 Автокорреляционный метод. Имея дело с обработкой речи, реализуемой посредством оконной функции, необходимо принять во внимание граничные эффекты для избежания больших ошибок предсказания на краях. Используем тот факт, что отсчеты являются нулевыми вне окна, чтобы переписать φi, j как [11] N − 1 − (i − j ) (5.25) Sn Sn + (i − j ) . ∑ n=0 Теперь φi, j зависит только от разницы ( i − j ) и может быть записа- φi, j = но в терминах автокорреляционной функции φi, j = ri − j , N −1− k Sn Sn + k . ∑ n=0 Тогда (5.22) преобразуется к виду r1 r2 ⎛ r1 ⎞ ⎛ r 0 ⎜ ⎜ ⎟ r0 r1 ⎜ r 2 ⎟ ⎜ r1 ⎜ ⎟=⎜ r1 r0 ⎜ r3 ⎟ ⎜ r 2 ⎜ ... ⎟ ⎜ ⎜ ⎜⎜ r p ⎟⎟ ⎜ r ⎝ ⎠ ⎝ p −1 r p − 2 r p − 3 (5.26) rk = r p −1⎞⎛ a ⎞ ⎟⎜ 1 ⎟ r p − 2 ⎟ ⎜ a2 ⎟ ⎟ r p − 3 ⎟ ⎜ a3 ⎟ . ⎜ ⎟ ⎟⎜ ⎟ ⎟⎜ ⎟ ⎟ r0 ⎠ ⎝ a p ⎠ (5.27) Существуют эффективные методы для инвертирования таких матриц, один из которых – алгоритм Дарбина (Durbin algorithm). ⎛ ⎞ i − 1 (i − 1) ⎜ (5.28) k i = ri − ∑ a j ai − j ⎟ / E (i − 1) , ⎜ ⎟ j =1 ⎝ ⎠ (i ) (5.29) ai = k i , (i ) (i − 1) (i − 1) при 1 ≤ j ≤ i , (5.30) − k i ai − j aj =aj (5.31) E (i ) = (1 − k i2) E (i − 1) . Параметры ki известны как параметры отражения. Полученный (i ) фильтр устойчив. Значение квадрата остаточного предсказания E всегда будет уменьшаться (или оставаться постоянным) на каждой последующей итерации. 109 Спектр линейного предсказания. Передаточная функция 1 H ( z ) – это КИХ-обеляющий фильтр для речи. Его частотная характе- ристика может быть вычислена как преобразование Фурье от коэффициентов фильтра, затем инвертирована, чтобы выдать частотную характеристику H ( z ) [11]. Рис. 5.19 показывает пример спектра ЛП для сегмента речи. Заметим, что форманты максимально выражены. >> [sig] = wavread('filename'); >> a = lpc(hamming(512).*sig, 16); >> h = (1./fft([a zeros(1, 512 - 17)])).'; >> figure; >> plot(abs(h)); >> xlim([0 256]) Рис. 5.19. Спектр ЛП сегмента речи Мера расстояния Itakura. Рассмотрим случай, когда речевой сигнал Sn проходит через линейный предсказатель, соответствующий образ- цу a . Остаточная среднеквадратичная ошибка E [11] 2 p N −1 N − 1⎛ ⎞ E = ∑ e2n = ∑ ⎜ Sn − ∑ ai Sn − i ⎟ = ⎜ ⎟ n=0 n = 0⎝ i =1 ⎠ 110 p p p N − 1⎛ 2 ⎜ = ∑ Sn − 2 ∑ ai Sn Sn − i + ∑ ∑ ai a j Sn − i Sn − n = 0 ⎜⎝ i =1 i =1 j =1 p N −1 N −1 = ∑ Sn2 − 2 ∑ ai ∑ Sn Sn − i + n=0 i =1 n = 0 p p N −1 + p ∑ ∑ ai a j ∑ Sn − i Sn − j = i =1 j =1 n=0 p p p p = ∑ φ00 − 2 ∑ aiφ0i ∑ ∑ ai a jφ ij = n=0 i =1 i =1 j =1 ⎡ φ 00 φ 01 φ 02 … φ 0 p ⎤ ⎞ ⎟ j⎟= ⎠ ⎢ ⎥ ⎡ −1 ⎤ ⎢ φ10 φ11 φ12 … φ1 p ⎥ ⎢ a1 ⎥ ⎢ ⎥⎢ ⎥. ⎡ ⎤ = −1, a1, a 2, …, a p ⎢ φ 20 φ 21 φ 22 … φ 2 p ⎥ ⎢ a 2 ⎥ ⎣ ⎦ ⎢ ⎥⎢…⎥ ⎢ ⎥⎢ ⎥ ⎢φ ⎥ ⎢⎣ a p ⎥⎦ … φ φ φ p1 p2 pp ⎦ ⎣ p0 (5.32) Определим ⎡ φ 00 φ 01 φ 02 … φ 0 p ⎤ ⎢ ⎥ ⎢ φ10 φ11 φ12 … φ1 p ⎥ ⎢ ⎥ R = ⎢ φ 20 φ 21 φ 22 … φ 2 p ⎥ , ⎢ ⎥ ⎢ ⎥ ⎢φ φ p1 φ p 2 … φ pp ⎥ ⎣ p0 ⎦ (5.33) или в случае автокорреляции ⎡ r0 r1 r2 ⎢ r0 r1 ⎢ r1 r1 r0 R = ⎢ r2 ⎢ ⎢ ⎢r p r p − 1 r p − 2 ⎣ Пусть ⎡ −1, a , 1 ⎢⎣ ⎡ −1, a′ , 1 ⎢⎣ y a2 , …, a p ⎤⎥ , ⎦ – … r 0⎤ … r1 ⎥ ⎥ … r 2⎥ . ⎥ ⎥ … r 0⎥ ⎦ расширенный x – (5.34) вектор расширенный коэффициентов вектор входных ЛП данных, a2′ , …, a′p ⎤⎥ – неизвестные коэффициенты ЛП, xRxT – энергия на ⎦ 111 выходе обратного фильтра с входной речью на входе, yR yT – минимально возможная энергия на выходе фильтра ЛП с входной речью на входе. Тогда расстояние может быть вычислено по формуле Ex xRxT (5.35) d ( x, y ) = log( ) = log( ). T Ey yR y Кепстр линейного предсказания. Параметры кепстра могут быть вычислены непосредственно от параметров ЛП при помощи следующей рекурсии [11]: 1 k −1 (5.36) , при 1 ≤ k ≤ p . ∑ ic a ck = ak + k i =1 i k − i Корни многочленного предсказателя. Знаменатель передаточной функции может быть разложен в виде p p − k A( z ) = 1 − ∑ ak z = ∏ (1 − z −1 c k ) , (5.37) k =1 k =1 где ck – множество комплексных чисел, определяющих корни с угловой частотой ⎛ Im{ z i} ⎞ ⎟⎟ Re { } z i ⎝ ⎠ θ i = t g −1⎜⎜ (5.38) и амплитудой 2 2 (5.39) r i = Im{ z i} + Re{ z i} . Если корень близок к единичному кругу, тогда он представляется формантой [11]. Все корни и лежат в единичном круге. Они могут быть разделены на корни, которые соответствуют голосовому тракту с закрытой голосовой щелью, и те, которые соответствуют голосовому тракту с открытой голосовой щелью. Применение корней очень полезно при кодировании речи. 5.6. Применение формантного анализа Существует несколько способов моделирования (синтеза) речевого сигнала. Наиболее адекватна реальному голосовому аппарату линейная модель, относящаяся к группе параметрических моделей синтеза речевого сигнала и основывающаяся на устройстве голосового аппарата. Минуя задачи моделирования колебания связок и формирования резонансных полостей и рассматривая только изменения волнового сигнала, получаем схему, изображенную на рис. 5.20 [1]. 112 В данной модели выходной сигнал представляется в виде свертки возбуждающего сигнала, генерируемого связками, и модулирующего сигнала, являющегося характеристической функцией формы ротовой полости, или артикуляторной характеристикой [18]. Математически это можно описать следующей формулой: (5.40) S( n ) = v( n ) ⊗ h( n ) , где v(n) – возбуждающий сигнал, h( n) – модулирующий. ШУМ Фильтр голосового аппарата Последовательность импульсов Речь Рис. 5.20. Схема параметрической модели речеобразования В терминах Z-преобразования S ( z) = V ( z) ∗ H ( z) . (5.41) Возбуждающий сигнал характеризуется высотой и тембровой окраской. Такая информация может быть использована в задачах идентификации говорящего по голосу. Модулирующий сигнал рассматривается как характеристика формирующего звуки голосового тракта человека и применяется в задачах распознавания речи. В спектральной области операция свертки двух сигналов представляется в виде произведения их образов. Возбуждающий сигнал в рамках описанной модели является либо полигармоническим (в случае гласного звука), либо широкополосным шумовым (в случае согласного). Модулирующая функция представляет собой огибающую результирующего сигнала. Таким образом, задача получения аутентичной информации (при распознавании фонем) сводится к определению огибающей мгновенного спектра сигнала, или так называемому формантному анализу. Модулирующую функцию можно рассматривать как передаточную функцию линейного КИХ-фильтра. Таким образом, значения этой функции (коэффициенты фильтра) определяются с помощью метода линейного предсказания. Данный алгоритм широко применяется в вокодерном кодировании [29]. 113 При формантном анализе текущую оценку отсчета сигнала определяют как сумму p предшествующих отсчетов: p θ ( n ) = ∑ S( n − k )a k , k =1 (5.42) { } где ak – вектор коэффициентов предсказания. Порядок p при формантном анализе выбирают равным 8 – 12. Разность между истинным и предсказанным значением отсчета определяет ошибку предсказания, или остаточный сигнал: p r( n ) = S( n ) − θ ( n ) = S( n ) − ∑ S( n − k )a k . (5.43) k =1 В результате Z-преобразования разностного уравнения (5.43) имеем R ( z ) = S ( z ) ∗ A( z ) , (5.44) где функция p A( z ) = 1 − ∑ ak ⋅ z −k (5.45) k =1 является передаточной характеристикой цифрового фильтра, частотная характеристика которого обратна по отношению к частотной характеристике голосового тракта: 1 A( z ) = . (5.46) H ( z) Значения коэффициентов ak в (5.45) подбираются так, чтобы минимизировать среднеквадратичное значение остаточного сигнала r (n) . Полу- { } ченные коэффициенты фильтра ak можно рассматривать как вектор признаков фонемы. Для проверки степени стабильности и инвариантности по- { } лучаемого вектора признаков ak необходимо исследовать предел его изменений в условиях различного произношения опорной фразы, артикуляторные характеристики которой предполагаются стабильными. Вариации произношения обеспечиваются различной высотой произношения (pitch). Как показали исследования [18], артикуляторные параметры также зависят от конкретного человека и не являются абсолютно стабильными речевыми характеристиками. При плохой дикции и невыразительной речи понимать слова приходится из контекста. В компьютерной модели такая 114 обработка осуществляется на последующих этапах (фонемная категоризация, семантический анализ и т.д.). Однако для этапа выделения информации о произнесенной единице речи описанный выше метод оказывается вполне применимым. Важное достоинство формантного анализа – относительная простота оценки параметров фильтра A( z ) , так как используются линейные процедуры обработки сигнала. Контрольные вопросы 1. Что такое анализ речи и для чего он применяется? 2. Что такое акустический вектор? 3. Каковы особенности применения окон при обработке речи? 4. Как определяются и рассчитываются в MATLAB отсчеты окна Чебышева? 5. Как определяются и рассчитываются в MATLAB отсчеты окна Кайзера? 6. Как определяются и рассчитываются в MATLAB отсчеты прямоугольного окна? 7. Как определяются и рассчитываются в MATLAB отсчеты окна Хэмминга? 8. Как определяется ОДПФ? 9. Что такое кепстральный анализ? 10. Что такое Z-преобразование и каковы его свойства? 11. Каковы отличительные особенности применения Z-преобразования и преобразования Фурье? 12. Каковы особенности применения линейного предсказания для анализа речи? 13. Как определяются параметры отражения линейного предсказания при анализе речи? 14. Каковы особенности автокорреляционного и ковариационного методов? 15. Как определяется спектр линейного предсказания? 16. Как определяется мера расстояния Itakura? 17. Как определяются параметры кепстра линейного предсказания? 18. Что такое формантный анализ и для чего он применяется? 115 Глава 6. МЕТОДЫ СИНТЕЗА РЕЧИ Синтез речи (speech synthesis) – процесс преобразования текста в речь. Синтез – одна из форм обработки речи, связанная с задачей чтения абонентской системой записанного в ее памяти электронного текста. При синтезе для обеспечения высокого качества речи необходимы высокая скорость обработки данных и большая емкость памяти для хранения данных, поэтому приходится идти на компромисс, приводящий к определенному ухудшению качества синтезируемой речи. Обычно синтез речи проводится с учетом особенностей языка и использованием автоматической расстановки ударений. Задача синтеза речи заключается в том, чтобы текст, представленный в компьютере в виде символов, был озвучен и превратился в человеческую речь. При этом машина либо уже имеет исходный текст в виде файла, либо составляет его, руководствуясь каким-либо алгоритмом. Например, в телефонии, как правило, синтезированная речь передается по телефонным линиям, имеющим ограниченный сверху и снизу частотный диапазон. Речь должна быть максимально разборчивой, членораздельной и учитывать изменения интонации в соответствии с правилами языка. Существуют различные методы синтеза речи. Выбор того или иного метода определяется различными ограничениями. Рассмотрим четыре вида ограничений, которые влияют на выбор метода синтеза [17]. 1. Задача Возможности синтезированной речи зависят от того, в какой области она будет применяться. Когда нужно произнести ограниченное число фраз, речевой материал записывается в память и воспроизводится по необходимости. В других случаях используются более сложные подходы. 2. Голосовой аппарат человека Система синтеза речи должна производить на выходе требуемые речевые волны. Для этого сигнал должен пройти путь от источника в речевом тракте с возбуждением артикуляторных органов, которые действуют как изменяющиеся во времени фильтры. Артикуляторные органы также накладывают ограничения на скорость изменения сигнала, выполняют функцию гладкого сцепления отдельных базовых фонетических единиц в сложный речевой поток. 116 3. Структура языка Ряд возможных звуковых сочетаний определяется природой той или иной языковой структуры. Было обнаружено, что единицы и структуры, используемые лингвистами для описания и объяснения языка, могут применяться для характеристики и построения речевой волны. Таким образом, при построении выходной речевой волны используются основные фонологические законы, правила ударения, морфологические и синтаксические структуры, фонотактические ограничения. 4. Технология Возможности успешно моделировать и создавать устройства для синтеза речи в большой степени зависят от состояния техникотехнологической стороны дела. Речевая наука сделала значительный шаг вперед благодаря появлению различных технологий, в том числе рентгенографии, кинематографии, теории фильтров и спектров, а главным образом компьютеров. Развитие интегральных технологий с постоянно возрастающими возможностями позволило конструировать построение мощные, компактные, недорогие устройства, действующие в реальном времени. Вместе с прогрессом теории синтеза речи это стимулировало дальнейшее развитие систем синтеза речи и их широкое применение. 6.1. Метод цифрового кодирования речи Данный метод состоит в простом запоминании оцифрованного фрагмента речи с последующим восстановлением и воспроизведением речевого сигнала в аналоговой форме [38]. Структурная схема цифрового кодирования речи (режим «Запись речи») приведена на рис. 6.1. Структурная схема декодирования речи (режим «Воспроизведение речи») приведена на рис. 6.2. Рассчитаем объем памяти, необходимый для хранения речи длительностью в одну секунду. Оказывается, достаточную точность представления речевого сигнала обеспечивает кодирование 8 бит на один отсчет. При частоте дискретизации 8 кГц, что достаточно для речевого сигнала, занимающего полосу частот 4 кГц, объем памяти составит 64 кбит. Если оцифрованный сигнал передают по каналу связи, тогда скорость передачи информации должна быть 64 кбит/с. 117 Приведенные выше числовые значения параметров типичны для импульсно-кодовой модуляции (ИКМ). Применение эффективных методов кодирования позволяет снизить требования к памяти и скорости передачи информации. Например, применение адаптивной дельта-модуляции позволяет снизить эту величину почти на порядок. Речевой сигнал Согласование по уровню Память АЦП Данные Логическая управляющая схема Генератор адресов Рис. 6.1. Структурная схема цифрового кодирования речи Речевой сигнал Фильтр НЧ ЦАП Данные Память Адреса Логическая управляющая схема Генератор адресов Рис. 6.2. Структурная схема декодирования речи 6.2. Метод фонемного синтеза Идея метода чрезвычайно проста: речь представляется последовательностью букв-звуков и пауз между словами и предложениями [38]. Например, фраза «кафедра акустики» будет иметь вид: к-а-ф-е-д-р-а _ а-к-у-с-т-и-к-и. Здесь фонемы отделены черточками, а пауза между словами обозначена символом подчеркивания. Проанализировав речь, можно выделить конечное множество «кирпичиков» – фонем, образующих своеобразную «библиотеку фонем». Ее можно хранить либо в памяти ПК, либо в памяти специальной микросхемы. Первый способ предполагает программную реализацию синтеза речи, второй – программно-аппаратную. 118 При программно-аппаратном подходе используют специальную микросхему, в памяти которой хранятся фонемы и алгоритмы их соединения, необходимые для сглаживания «шероховатости» на стыках. 6.3. Метод формантного синтеза Цифровая модель образования речи (по Шаферу) показана на рис. 6.3 [38]. Период ОТ Генератор импульсов Генератор случайных чисел Коэффициенты цифрового фильтра (параметры речевого тракта) Цифровой фильтр с переменными параметрами Регулировка громкости Отсчеты речевого сигнала Рис. 6.3. Цифровая модель образования речи Для отражения свойств голосового тракта коэффициенты фильтра должны изменяться примерно каждые 10 мс. Фильтр применяется как система, моделирующая резонансные свойства полостей рта и носа человека. Алгоритм цифровой фильтрации можно реализовать по-разному. Например, можно для каждого отрезка времени заново рассчитывать коэффициенты рекурсивного фильтра, количество и местоположение полюсов которого определяется количеством и местоположением формант в синтезируемом звуке. Именно такой подход показан на рис. 6.3. Иной подход – использовать «гребенку» узкополосных фильтров с перекрывающимися ЧХ таким образом, что АЧХ результирующей системы практически равномерна в полосе частот речевого сигнала. Очевидно, что варьируя коэффициентом ослабления сигнала в каждом из отдельных фильтров «гребенки», можно синтезировать суммарную ЧХ практически любой формы. Нетрудно увидеть, что такой подход должен обеспечивать при правильной организации вычислений результаты синтеза, практически идентичные результатам для первого подхода. Между тем второй подход значительно эффективнее в плане вычислительных затрат. «Гребенку» фильтров при этом можно организовать либо с помощью классических методов расчета цифровых фильтров, либо с помощью алгоритмов ДПФ и БПФ. 119 6.4. Вокодеры Задача формантного синтеза речи хорошо «сопрягается» с задачей низкоскоростной передачb информации на расстояние. Не будем останавливаться на важности сжатия объема передаваемых данных, приводящего к возможности снижения скорости передачи – это очевидно. Зададим иной вопрос – за счет чего возможно такое сжатие [38]. Чтобы найти простой ответ на этот непростой вопрос, представим себе, что на передающей станции установлен спектроанализатор, который вычисляет кратковременное преобразование Фурье. В результате для каждого временного сегмента получаем N / 2 комплексных коэффициентов, или N вещественных чисел. Если передавать на расстояние все эти числа, а затем на приемной станции из них восстанавливать сегмент сигнала, тогда сигнал восстановится без потерь. Однако легко увидеть, что объем передаваемых данных при этом нисколько не уменьшился: раньше передавались N отсчетов временного сегмента, а теперь N спектральных отсчетов (более того, возникла необходимость в ненужных, казалось бы, вычислениях). Но можно поступить по-другому: передавать на расстояние не все спектральные коэффициенты, а лишь «большие». Разумеется, при этом нужно еще указать центральные частоты соответствующих полосовых фильтров (или, что то же, номера коэффициентов). В специальной литературе утверждается, что основная информация о гласных звуках содержится всего в трех формантах. Это означает, что одну гласную можно представить набором из девяти чисел, тогда как при обычном способе передачи для этого требуется примерно 100 чисел (интервал 10 мс при частоте дискретизации 10 кГц). Как видим, выигрыш существенный. К сожалению, для согласных звуков эта разница значительно меньше, поэтому общий выигрыш снижается. Дальнейшего сжатия можно добиться, например, уменьшив разрядность передаваемых чисел. В конечном счете на практике удается понизить скорость передачи данных с 64 до 9,6 кбит/с без существенной потери качества синтезированной речи, и даже до 2,4 кбит/с, но уже с заметной потерей качества. Таким образом, для передачи речевых сигналов целесообразно применение вокодеров, при этом данную задачу естественно представить в виде двух подзадач: 1) анализ речи при передаче; 2) синтез речи при воспроизведении. На этапе анализа проводится оценка параметров модели, а на этапе синтеза – образование искусственного речевого сигнала. По принципу определения параметров фильтровой функции речи различают вокодеры: полосные (канальные, channel), формантные, ортогональные, с линейным предсказанием речи (липредеры) и гомоморфные [14]. 120 В полосных вокодерах спектр речи делится на 7 – 20 полос (каналов) аналоговыми или цифровыми полосовыми фильтрами. Большее число каналов в вокодере дает большую натуральность и разборчивость. С каждого полосового фильтра сигнал поступает на детектор и фильтр низких частот с частотой среза 25 Гц. Таким образом, сигналы на выходе каждого канала изменяются с частотой менее 25 Гц. Их передача возможна в аналоговом или цифровом виде. В формантных вокодерах огибающая спектра речи описывается комбинацией формант (резонансных частот голосового тракта). Основные параметры формант – центральная частота, амплитуда и ширина. В ортогональных вокодерах огибающая мгновенного спектра раскладывается в ряд по выбранной системе ортогональных базисных функций. Вычисленные коэффициенты этого разложения передаются на приемную сторону. Распространение получили гармонические вокодеры, использующие разложение в ряд Фурье. Вокодеры с линейным предсказанием (Linear Prediction Coding, LPC), или липредеры, основаны на оригинальном математическом аппарате. Гомоморфная обработка позволяет разделить генераторную и фильтровую функции, образующие речевой сигнал. Из-за сложности определения параметров генераторной функции появились полувокодеры (Voice Excited Vocoder, VEV), в которых вместо сигналов основного тона и тон-шума используется полоса речевого сигнала. Полоса частот до 800 – 1000 Гц кодируется по методу адаптивной дифференциальной импульсно-кодовой модуляции (АДИКМ), адаптивной дельта-модуляции (АДМ) или с помощью линейного предсказания малого порядка, а в некоторых моделях передается в аналоговом виде. Есть разные типы полувокодеров-липредеров: 1) вокодеры VELP (Voice Excited Linear Prediction); 2) вокодеры RELP (Residual Excited Linear Prediction). Сегодня вокодеры применяют для кодирования телефонных сигналов в коммерческих и военных цифровых системах связи. Перспективно применение вокодеров для организации служебной телефонной связи со скоростью передачи данных 1200 – 2400 бит/с. Формантные и полосные вокодеры используются также при цифровой передаче телефонных сигналов по КВ-каналам радиосвязи. 121 Современные вокодеры обеспечивают хорошее качество речи при скорости передачи 800 – 2 400 бит/с и качество речи, пригодное для ведения служебных переговоров, при скорости передачи 1 200 бит/с. В качестве примера рассмотрим более подробно характеристики вокодера NPES (Natural Parameters EStimation). NPES вокодер – это алгоритм анализа и синтеза речи, основанный на «натуральной» модели речевого тракта. В этой модели локальнопостоянные параметры речевого сигнала – частота основного тона, частота вокализованности, частоты и амплитуды формант. Такая параметризация позволяет использовать NPES вокодер в качестве единого алгоритма предварительной обработки цифрового сигнала для задач сжатия, идентификации и распознавания речи [33]. NPES вокодер имеет следующие характеристики: − класс сигналов – речь одного диктора; − частота дискретизации – до 16 кГц; − полоса частот формант – 80 – 3800 Гц; − полоса частоты основного тона – 50 – Fs/2 Гц; − скорость передачи речи фиксирована в диапазоне 800 – 2400 бит/с; − задержка обработки – 25 мс; − встроенная адаптивная фильтрация шума; − преобразование параметров речи; − устойчивость к ошибкам в канале передачи; − возможность аппаратной реализации синтезатора. NPES вокодер применяется в следующих областях: − сжатие речи для передачи и хранения; − преобразование речи; − синтез речи по тексту; − распознавание речи; − идентификация диктора; − определение частоты основного тона. На рис. 6.4 представлена функциональная структура NPES вокодера. Каждая из его четырёх частей осуществляет определенное преобразование речевого сигнала, представленного в цифровой форме. Процедура анализа преобразует сегмент речевого сигнала из представления в виде последовательности отсчётов (формат PCM) в представление в виде значений пара122 метров модели, а процедура синтеза осуществляет обратное преобразование. Процедура кодирования позволяет сопоставить каждый набор значений параметров с определённым 32-битным числом (формат NPES), а процедура декодирования производит обратное действие. Параметры речи Сегмент речи Анализ РСМ Синтез Кодер Декодер 32битный код NPES Рис. 6.4. Функциональная структура NPES вокодера Контрольные вопросы 1. 2. 3. 4. 5. 6. 7. 8. Что такое синтез речи? Какие существуют ограничения, влияющие на выбор метода синтеза? Что такое кодирование и декодирование речи? Чем характеризуется метод фонемного синтеза речи? Чем характеризуется метод формантного синтеза речи? Что такое вокодер и каковы его особенности? Какие существуют виды вокодеров? Каковы характеристики NPES вокодера? 123 Глава 7. МЕТОДЫ КОДИРОВАНИЯ РЕЧЕВЫХ СИГНАЛОВ Современные достижения в области создания высокопроизводительных процессоров для обработки сигналов позволяют практически неограниченно совершенствовать методы и алгоритмы цифровой обработки речевых сигналов, что обеспечивает возможность создания высококачественных цифровых систем связи. При этом с каждым годом усилиями ученых и инженеров снижается информационная емкость передаваемых по каналам связи речевых сигналов, что приводит к постоянному удешевлению услуг средств связи [19]. Кодирование речи обеспечивает компактное цифровое представление аналогового голосового сигнала, что делает возможным высококачественную передачу голоса по цифровым телефонным сетям. Кроме того, потребности в уменьшении скорости передачи (компрессии) речевых сигналов возникают в военной и других областях для обеспечения закрытой связи. Можно указать и другие факторы, определяющие интерес к системам компрессии речи. Быстрый рост компьютерных сетей требует создания ориентированной на мультимедиа-трафик системы коммуникации. При улучшении качества вокодерной речи на скоростях передачи примерно 4 – 8 кбит/с условия для речевой коммуникации по компьютерным сетям становятся более благоприятными. В настоящее время интерес к низкоскоростной компрессии речевых сигналов возрастает в таких областях, как цифровая телефония, беспроводная связь, Интернет, речевая справочная (автоматическая) служба и другие. 7.1. Кодирование формы волны речевого сигнала Исходный речевой сигнал представляет собой акустическую волну (волна давления в воздухе), которую можно преобразовать в электромагнитную с помощью микрофона. Будем считать, что спектр речевого сигнала лежит в диапазоне от 100 до 4 000 Гц. Динамический диапазон изменения амплитуды, достаточный для описания речевых сигналов, составляет 12 двоичных разрядов [19, 33]. 124 Для цифрового представления сигнала достаточно осуществить аналогово-цифровое преобразование частотой 8 000 Гц. Информационная емкость речевого сигнала составит 12 ⋅ 8 000 = 96 000 бит/с. Компрессия речевых сигналов обеспечивается с помощью специальных средств кодирования (на входе), а затем декодирования (восстановления на выходе). Первый шаг, обеспечивающий компрессию сигнала, – попытка обеспечения равномерной относительной точности измерения значения амплитуды сигнала. Для этого 12-разрядный динамический диапазон амплитуды разбивают на восемь логарифмических поддиапазонов, в каждом из которых значение амплитуды кодируют пятью разрядами и таким образом достигают сокращения информации до 64 000 бит/с (кодирование по μ- и Α-законам в соответствии со стандартом ITU-G.711). Следующий шаг – адаптивная дифференциальная импульсно-кодовая модуляция (например в соответствии со стандартами G.721 или G.726 32 000 бит/с), с помощью которой осуществляют кодирование приращения амплитуды сигнала во времени. Таким путем удается достичь степени сжатия речевого сигнала порядка 32 000 – 16 000 бит/с, причем приемлемое (коммерческое) качество речи (по критерию отношения сигнал-шум) обеспечивается на скорости 24 000 бит/с. При более низких скоростях кодирования сохраняется разборчивость речи, но характерны сильные нелинейные и частотные искажения сигнала и ухудшение отношения сигнал-шум. Дальнейшее уменьшение информационной емкости сигнала с помощью данного подхода считается неэффективным. 7.2. Параметрическое кодирование Низкоскоростное кодирование складывается из двух основных процессов [19]: параметрического представления речевого сигнала минимальным набором параметров, характеризующих источник возбуждения и акустический артикуляторный фильтр; дискретизации речевых параметров для их передачи по каналу связи при использовании его минимальной емкости. Для параметрического описания речи обычно применяют подход, основанный на вычислении параметров, описывающих передаточную функцию речевого тракта человека и функцию возбуждения. Такими параметрами, например, являются коэффициенты линейного предсказания, параметр, характеризующий изменение амплитуды либо мощности сигнала, период основного тона речи, а также признак типа тон, шум, пауза, характеризующий способ возбуждения речевого сигнала. В последнее время наибольшее распространение получил метод, позволяющий вычислять непосредственно полюса передаточной функции речевого тракта в частотной области, упорядоченные по возрастанию частоты (LSF – linea spectral frequancy). Обычно для кодирования речи используют 8 – 10 параметров, вычисляемых на интервалах порядка 5 – 40 мс. 125 В качестве функции возбуждения речевого сигнала используется дельта-функция. Полученный набор параметров, оптимизированный по критерию точности и минимальной разрядности представления, передается в цифровом виде по каналу связи в реальном времени, а на приемном конце осуществляется синтез речевого сигнала по перечисленным параметрам. Таким путем удается снизить информационную емкость речевого сигнала до уровня 16 000 – 1 200 бит/с с сохранением разборчивости и индивидуальных особенностей речи говорящего. Применяют следующие способы дискретного описания речевых параметров: 1) скалярное квантование (свыше 2,400 бит/с); 2) векторное квантование (свыше 800 бит/с); 3) векторное квантование с учетом динамики развития спектра во времени (около 400 бит/с); 4) матричное квантование (до 300 бит/с). Далее кодирование речевого сигнала проводится с точностью до единиц, имеющихся в кодовой книге. При декодировании временная структура речевого сигнала восстанавливается путем «черепичного» наложения сегментов и усреднения параметра в местах наложения. 7.3. Кодирование фонемной информации Как известно, минимальная слогоразличительная (и словоразличительная) единица речи – это фонема. Создание метода распознавания фонем позволит снизить скорость кодирования речевой информации до 100 бит/с, что соответствует информационной скорости текста. Заметим, что на приемном конце речь будет восстановлена синтезатором речи по фонемному тексту. При этом информация об индивидуальности диктора будет утрачена [19]. 7.4. Кодирование слов и фраз На этом этапе компрессии речь идет о создании системы автоматического распознавания слов и целых фраз. В этом случае по каналу связи может быть передан только код слова, а на приемном конце из некоторого ограниченного словаря с помощью синтезатора будет восстановлен речевой сигнал [19]. 7.5. Импульсно-кодовая модуляция Импульсно-кодовая модуляция (ИКМ, PCM – Pulse Code Modulation) позволяет представить непрерывный аналоговый сигнал в форме последовательности равноотстоящих друг от друга импульсов (дискретизация по 126 времени), амплитуда которых выражается двоичным кодом (квантование по уровню). Подобное преобразование позволяет существенно повысить надежность передачи и хранения сигнала [35]. Кодеки, построенные на базе прямого аналогово-цифрового преобразования, работают на скоростях не ниже 32 кбит/с. При этом полоса входного аналогового сигнала ограничена диапазоном 0,3 – 3,4 кГц. Для повышения качества преобразования полоса может быть расширена до 6 кГц, что соответствует скорости передачи 88 кбит/с при частоте дискретизации 12 кГц. При дальнейшем расширении полосы качество представления речи не повышается [30]. Импульсно-кодовая модуляция – это алгоритм оцифровки голоса, который был принят в 60-х гг. XX в. Этот алгоритм (международный стандарт G.711) используется при передаче голоса в коммерческих телефонных сетях. Оцифровка голосового сигнала включает измерение уровня аналогового сигнала через равные промежутки времени. В соответствии со стандартом G.711 принимается, что для узнавания голоса необходимо обеспечить передачу его частотных составляющих в диапазоне от 200 до 3 400 Гц. Известно, что для правильной передачи всех частотных составляющих необходимо измерять уровень сигнала с частотой 8 кГц. В стандарте G.711 также принимается, что оцифровка аналогового сигнала производится с восьмиразрядным разрешением. При этом обычно используют один из двух способов установления соответствия между амплитудой звукового сигнала и цифровым значением: либо A-кодирование (оно принято в Европе и Азии), либо μ-кодирование (принято в США, Канаде и некоторых других странах). И то и другое – это таблицы соответствия измеряемого значения напряжения и числа, при помощи которого оно кодируется. Для передачи одного голосового канала в цифровом виде требуется пропускная способность 64 кбит/с (8 кГц · 8 разрядов). ИКМ. Законы μ и A Законы μ и A – это алгоритмы, рекомендованные для преобразования 14-разрядных отсчетов со знаком в байт, имеющие три поля: знак, порядок и мантисса (рис. 7.1) [35]. Рис. 7.1. Структура байта отсчета для законов μ и A 127 Так как согласно стандартам IBM PC работает 16-битным способом дискретизации звука, а не 14-битным, то алгоритм закона μ изменится для выделения из 16-битного отсчета всех трех полей байта. Когда звуковая карта получает звуковые данные, она преобразует каждое дискретное значение кода в соответствующее напряжение, которое затем усиливается и подается на динамик или наушники. При изменении значения оцифрованного звука меняется напряжение, а динамик преобразовывает изменение напряжения в изменение звукового давления, которое в виде звуковой волны распространяется в воздухе и достигает уха человека. Оно воспринимает звук нелинейно: разница между малыми цифровыми представлениями звукового сигнала может быть слишком велика для слабых звуков, в то время как разница между большими значениями будет слишком мала, чтобы ухо ее различило. Принимая во внимание указанную природу человеческого слуха, вводят логарифмическую шкалу. Соотношения μ- и A-законов соответствуют этой шкале [30]. Первое применяется прежде всего в Северной Америке и Японии. Для преобразования значений линейной дискретизации m в значения y μ используется следующее уравнение: sign( m ) ⎛ m ⎞ ⎟, ln ⎜ 1 + μ ln( 1 + μ ) ⎜ m p ⎟⎠ ⎝ m p – максимальное входное значение оцифрованного звука, yμ = где (7.1) μ – константа, обычно равная 100 или 255. A – закон используется в Европе. Его также применяют для преобразования значений линейной дискретизации в дискретные значения y A , где A – это константа, равная 87,6: ⎧ A ⎛ m ⎞ m 1 ⎪ ⎜ ⎟ , при ≤ ; mp A ⎪⎪1 + ln A ⎜⎝ m p ⎟⎠ yA = ⎨ (7.2) ⎛ ⎞ ⎪ sign(m) 1 m m ⎜ 1 + ln A ⎟ , при ≤ ≤ 1. ⎪ ⎜ ⎟ 1 ln + A A m m p⎠ p ⎪⎩ ⎝ Соотношения μ - и A -законов позволяют с помощью восьмиразрядных измерений представлять значения того же диапазона, что и линейные 12-разрядные. Таким образом можно получить более чем 30 % сжатия. 128 7.6. Дифференциальная импульсно-кодовая модуляция (ДИКМ) на основе линейного предсказания В обычной импульсно-кодовой модуляции каждый отсчет кодируется независимо от других. Однако у многих источников сигнала при стробировании с частотой Найквиста или быстрее проявляется значительная корреляция между последовательными отсчетами [42] (в частности, речевой сигнал является квазистационарным источником). Другими словами, изменения амплитуды между последовательными отсчетами в среднем относительно малы. Следовательно, схема кодирования, которая учитывает избыточность отсчетов, будет требовать более низкой битовой скорости. Суть ДИКМ заключается в следующем: текущее значение может быть предсказано по предыдущим M отсчетам. Пусть xn означает текущий от- счет источника, а x n – предсказанное значение (оценку) для xn , определяемое как M (7.3) x n = ∑ ak xn − k . k =1 Таким образом, x n – взвешенная линейная комбинация M отсчетов, { } а ak { } – коэффициенты предсказания. Величины ak выбираются так, чтобы минимизировать некоторую функцию ошибки en между xn и x n . Проиллюстрируем вышесказанное на отрезке речевого сигнала, где xn − x n = en (рис. 7.2). Линейное» предскаen зание означает, что x n – линейная функция предыxn дущих отсчетов. При нелинейном предсказании – x n нелинейная функция. Характеристики предсказания (порядок) определяxn xn + 1 ются количеством используемых предыдущих Рис. 7.2. График ошибки en отсчетов. Предсказание нулевого и первого порядка является линейным, второго и более высокого порядка – нелинейным. При линейном предсказании восстановить сигнал значительно проще, чем при нелинейном. Будем рассматривать только линейное предсказание. 129 Оно имеет следующие разновидности. 1. Предсказание нулевого порядка (рис.7.3). xn en xn xn − 2 xn − 1 xn Рис. 7.3. График предсказания нулевого порядка В этом случае для предсказания текущего отсчета используется только предыдущий отсчет речевого сигнала: x n = xn − 1 ⇒ en = xn − x n = xn − xn − 1 . 2. Предсказание первого порядка (линейная экстраполяция). В этом случае для предсказания текущего отсчета используется не только предыдущий отсчет, но и разница между предпоследним и последним отсчетами, которая прибавляется к общему результату: x n = xn − 1 + Δx = xn − 1 + ( xn − 1 − xn − 2 ) = 2 xn − 1 − xn − 2 => => en = xn − x n = xn − 2 xn − 1 + xn − 2 . Формирование сигнала ошибки при использовании линейного предсказания эквивалентно прохождению исходного сигнала через линейный цифровой фильтр, который называется фильтром сигнала ошибки (ФСО), или обратным фильтром. Обозначим передаточную функцию такого фильтра как A ( z ) , следовательно E( z) , (7.4) X ( z) где E ( z ) и X ( z ) – прямое Z -преобразование от сигнала ошибки и входA( z ) = ного сигнала соответственно. 130 На приемной стороне при прохождении сигнала ошибки через формирующий фильтр (ФФ) мы должны получить исходный сигнал. Обозначим передаточную функцию формирующего фильтра как K ( z ) . Передаточная функция K ( z ) будет связана с A ( z ) следующим соотношением: 1 X ( z) . (7.5) K ( z) = = A( z ) E ( z ) Последовательность соединения ФСО и ФФ показана на рис. 7.4. При A ( z ) ⋅ K ( z ) = 1 будет обеспечено абсолютно точное xn {e n} восстановление сигнала, т.е. { x n} A( z ) K (z) xn = x n . Но в действительности такого быть не может по причинам, о которых скажем ниже. Рис. 7.4. Схема соединения фильтров Для примера найдем передаточные функции ФСО и ФФ для разных типов линейного предсказания. Предсказание нулевого порядка E ( z ) X ( z ) − z −1 X ( z ) 1 1 ( z − 0) = = 1 − z −1 ; K ( z ) = . A( z ) = = = − 1 X ( z) X ( z) ( z − 1) A( z ) 1 − z Получили, что такой фильтр неустойчив, так как полюс находится на единичной окружности. Предсказание первого порядка E ( z ) X ( z ) − 2 z −1 X ( z ) + z −2 X ( z ) = = 1 − 2 z −1 + z −2 ; A( z ) = X ( z) X ( z) { } K ( z) = 1 ( z − 0) 2 = . 1 − 2 z −1 + z −2 ( z − 1) 2 Получили, что и такой фильтр тоже неустойчив. Общая форма предсказания Было получено, что M M x n = ∑ ak xn − k => en = xn − x n = xn − ∑ ak xn − k , следовательно, k =1 k =1 M X ( z ) − ∑ ak z −k X ( z ) M E( z) 1 = k A( z ) = = = 1 − ∑ ak z −k ; X ( z) X ( z) k =1 1 1 K ( z) = = . M A( z ) 1 − ∑ ak z − k k =1 131 На основании рассмотренных примеров можно сделать следующие выводы. Фильтр сигнала ошибки – это всегда КИХ-фильтр, а формирующий фильтр – БИХ-фильтр. Коэффициенты передаточной функции ФФ, являющиеся коэффициентами линейного предсказания, должны быть такими, чтобы формирующий фильтр был устойчивым, а ошибка en минимальна. Для получения передаточной функции ФФ, наиболее точно воспроизводящего частотную характеристику голосового тракта для данного звука, { } следует определить коэффициенты передаточной функции ak исходя из условия наименьшей ошибки линейного предсказания речевого сигнала (по условию минимума среднего квадрата ошибки). Запишем выражение для оценки дисперсии сигнала ошибки, которую надо минимзировать: 2 1 N σ e = ⋅ ∑ ( xn − x n )2 = min ; N n =1 N N M s 2 = ∑ ( xn − x n)2 = ∑ ( xn − ∑ ak xn − k )2 = min . n =1 n =1 k =1 Получили, что s 2 = f (a1, a2 , a3,..., am ) – функция нескольких переменных. Продифференцируем ее и приравняем частные производные нулю для нахождения экстремума: ∂ s2 = 0, m = 1, M ; ∂ am N M ⎛ M ∂a ⎞ ∂ s2 k ⋅x = ∑ 2( xn − ∑ ak xn − k )2 ⎜ − ∑ n − k ⎟⎟ = 0 , ⎜ a ∂ am n = 1 ∂ k =1 ⎝ k =1 m ⎠ ∂ ak ⎧1, k = m =⎨ =δ где – символ Кронекера. ∂ am ⎩0, k ≠ m km Следовательно, M ∑ δ km xn − k =xn − m ; k =1 M ∂ s2 = ∑ 2( xn − ∑ ak xn − k )(− xn − m ) = 0 ; => ∂ am n k =1 132 M ∂ s2 = ∑ ( xn − ∑ ak xn − k )( xn − m ) = 0 ; => ∂ am n k =1 M ∑ ( xn − ∑ ak xn − k )( xn − m ) = n k =1 M = ∑ ( xn xn − m − ∑ ak xn − k xn − m ) = n k =1 M = ∑ xn xn − m − ∑ ∑ ak xn − k xn − m = 0. n n k =1 Получены нормальные уравнения или уравнения Юла – Волкера. Введем обозначение ϕ (k , m) = ∑ xn − k xn − m , n где ϕ (k , m) – автокорреляционная функция (АКФ). M ϕ (0, m) = ∑ ak ⋅ ϕ (k , m) . (7.6) k =1 Для вычисления функции ϕ (k , m) необходимо найти пределы суммирования по n: M + 1 ≤ n ≤ N , где N – количество отсчетов в сегменте речевого сигнала, а M – количество отсчетов, необходимых для расчета коэффициентов предсказания (M + 1)-го отсчета. Значит, первое предсказанное значение запишется так: x n = f ( xn − 1, xn − 2 , xn − 3 ,..., xn − M ) , где n = M + 1. Получим N xn − k xn − m . ∑ n = M +1 Обозначим n – k = j => n = k + j, n – m = k + j – m <=> n – m = i + j, где i = k – m. Следовательно, N −k x jx j + i . (7.7) ϕ ( k , m) = ∑ j = M +1− k Таким образом, получаем выражение, имеющее структуру кратковременной ненормированной АКФ, зависящей не только от относительного сдвига последовательности i, но и от положения этих последовательностей внутри сегмента речевого сигнала, которые определяются индексом k, входящим в пределы суммирования. Такой метод определения функции ϕ (k , m) называется ковариационным [40, 42]. ϕ ( k , m) = 133 Выражение (7.6) представляет собой систему линейных алгебраических уравнений (СЛАУ) относительно ak , у которых все коэффициенты { } различны. При использовании ковариационного метода получаются несмещенные оценки коэффициентов линейного предсказания, т. е. E {a k } = a kист , где a kист – истинные значения коэффициентов линейного предсказания. Другой способ определения коэффициентов системы (7.6) состоит в том, что вместо функции ϕ (k , m) используется некоторая другая функция ϕ ′(k , m) , которая определяется как N − ( k − m) N−| k − m| ϕ ′(k , m) = xj ⋅xj +k −m = x j ⋅ x j + | k − m | = B(| k − m |), ∑ ∑ j =1 j =1 N −i B(i ) = ∑ x j x j + i – ненормированная кратковременная корреляционная j =1 функция (КФ). Поскольку определение функции ϕ ′(k , m) сводится к расчету КФ, то такой метод называется автокорреляционным. При его использовании получаются смещенные оценки коэффициентов линейного предсказания (однако при M << N смещение пренебрежимо мало). Перепишем СЛАУ (7.6) с учетом введенной функции ϕ ′(k , m) : M ϕ ′(0, m) = ∑ akϕ ′(k , m), m = 1, M , k =1 ϕ ′(k , m) = B(| k − m |), ϕ ′(0, m) = B(m). M B(m) = ∑ ak B (| k − m |), m = 1, M . (7.8) k =1 Для автокорреляционного метода характерно то, что вся информация о сигнале, необходимая для определения коэффициентов линейного предсказания, содержится в кратковременной ненормированной АКФ B ( i ) . Распишем полученную СЛАУ в явном виде B(0) a1 + B (1) a2 + B(2) a3 + ... + B ( M − 1) am = B(1), ⎫ ⎪ B (1) a1 + B (0) a2 + B (1) a3 + ... + B ( M − 2) am = B(2), ⎪ ⎪ B(2) a1 + B(1) a2 + B (0) a3 + ... + B( M − 3) am = B(3), ⎬ ⎪ ... ⎪ B( M − 1) a1 + B( M − 2) a2 + B( M − 3) a3 + ... + B (0) am = B( M ).⎪⎭ 134 Затем перепишем ее в матричной форме: B (1) ... B ( M − 1) ⎞ ⎛ a1 ⎞ ⎛ B(1) ⎞ ⎛ B (0) ⎜ B(1) ⎟ ⎜ a ⎟ ⎜ B(2) ⎟ B B M (0) ... ( 2) − ⎜ ⎟⋅⎜ 2 ⎟ =⎜ ⎟. ⎜ ⎟ ⎜ ... ⎟ ⎜ ... ⎟ ... ... ... ... ⎟ ⎜ ⎜ ⎟ ⎜ ⎟ ⎜ B M − B M − B ( 1) ( 2) ... (0) a ⎝ ⎠ ⎝ m ⎟⎠ ⎝ B( M ) ⎠ Свойства коэффициентов матрицы: 1) симметричность; 2) теплицева матрица (элементы диагонали равны). Для решения СЛАУ с такой матрицей используется алгоритм Левинсона – Дарбина, который требует меньших вычислительных затрат, чем стандартные алгоритмы и выглядит следующим образом. Начальные значения: B(1) (1) k1 = ; a1 = k1; E (0) = B(0); B(0) B (0)2 − B(1)2 (1) (0) 2 E = (1 − k1 ) ⋅ E = . B (0) m − 1 (m − 1) ⎫ B ( m) − ∑ a j B(m − j ) ⎪ ⎪ j =1 km = , ⎪ E (m − 1) ⎪ (m) = k ; a(m) = a (m − 1) − k a (m − 1) , j = 1, m − 1, ⎪⎬ m = 2, M . am m j j m m− j ⎪ ⎪ 2 ) E (m − 1) , E (m) = (1 − km ⎪ ⎪ (M ) ak = ak ; k = 1, M . ⎪⎭ 7.6.1. Решетчатый фильтр сигнала ошибки предсказания В процедуре вычисления коэффициентов предсказания Левинсона – Дарбина в качестве промежуточных величин используются коэффициенты k m , которые называются коэффициентами отражения. Их физический смысл заключается в следующем. Голосовой тракт человека представляет собой трубу, состоящую из секций, соединенных последовательно и имеющих разный диаметр. При прохождении звуковой волны через такую систему возникают отражения на стыках секций, так как каждый стык является неоднородностью. Коэффициент отражения характеризует величину проходимости стыка двух секций (сред) и равен 135 s −s rm = m + 1 m ; − 1 ≤ rm ≤ 1; ⇐ si ≥ 0 . sm + 1 + sm Поясним его смысл на рис. 7.5: жирной линией показана m-я – секция голосового тракта. r m = −1 Sm rm =1 Sm +1= 0 Sm m S m + 1 →∞ m Рис. 7.5. Коэффициент отражения Если r m = −1 , то произойдет обрыв в цепи передачи сигнала (обрыв прямой ветви). Такого быть не должно. Модель акустических труб может быть представлена в виде фильтра, имеющего решетчатую (или лестничную) структуру. Основные параметры такого фильтра – коэффициенты отражения [40, 42]. Система акустических труб – резонансная система, поэтому если фильтр без потерь, то на его амплитудно-частотной характеристике (АЧХ) будут наблюдаться разрывы (всплески в бесконечность). В действительности на месте этих всплесков будут резонансные пики. Частоты таких пиков называются формантными. Обычно в голосовых трактах человека формантных частот (или формант) не более трех. Так как коэффициенты отражения и коэффициенты предсказания вычисляются в рамках одной и той же процедуры алгоритма Левинсона – Дарбина, то они могут быть выражены друг через друга. Рассмотрим эти алгоритмы. Прямая рекурсия. Коэффициенты предсказания находят по коэффициентам отражения (m) = −r − устанавливается, ⎫ am m ⎪ ⎬ m = 1, M ( m) (m − 1) (m − 1) aj =aj + rmam − j , j = 1, m − 1, ⎪ ⎭ (M ) a j = a j , j = 1, M . Обратная рекурсия. Коэффициенты отражения находят по коэффициентам предсказания 136 (M ) = a j , j = 1, M , aj (m) − устанавливается, ⎫ rm = −am ⎪ ⎪ ( m) ( m ) a ( m) , m = M , 1. ⎬ a + a j m m− j (m − 1) ⎪ aj = , j = 1, m − 1. 2 ⎪ 1 − rm ⎭ Как уже было сказано, фильтры сигнала ошибки представляют собой КИХ-фильтры, или нерекурсивные фильтры, что означает отсутствие ветвей обратной связи. Системы с КИХ также могут обладать строго линейной фазо-частотной характеристикой (ФЧХ). Линейность ФЧХ – очень важное свойство применительно к речевому сигналу в тех случаях, когда требуется сохранить взаимное расположение элементов сигнала. Это существенно облегчает задачу проектирования фильтров и позволяет уделять внимание лишь аппроксимации их АЧХ. За это достоинство приходится расплачиваться необходимостью аппроксимации протяженной импульсной реакции в случае фильтров с крутыми АЧХ [39, 40]. Изобразим граф фильтра, имеющего решетчатую структуру 3-го порядка (рис. 7.6). e n(0) 1 xn (1) 1 en 1 r1 r1 z −1 bn(0) bn(0) −1 e n(2) 1 (3) 1 en 1 r2 r2 z −1 1 bn(1) en r3 r3 z −1 1 bn(1)−1 bn(2) 1 bn(2) −1 bn(3) bn Рис. 7.6. Граф решетчатого фильтра В отличие от формирующего фильтра этот фильтр имеет один вход и два выхода: ei – последовательность отсчетов сигнала ошибки прямого линейного предсказания; b i – последовательность отсчетов сигнала ошибки обратного линейного предсказания, где b n − 1 = x n − 1 − x n − 1 . Важность b i определяется тем, что по ним совместно с сигналом ошибки ei могут быть оценены коэффициенты отражения: 137 N (m − 1) (m − 1) bn ∑ en n =1 rm = − , (7.9) 2 2 N N (m − 1) (m − 1) ∑ en ∑ bn n =1 n =1 где N – количество отсчетов в сегменте. Полученная формула для расчета коэффициентов отражения имеет также другой физический смысл – расчет коэффициентов корреляции между последовательностью отсчетов сигнала ошибки прямого и обратного линейных предсказаний. Приведем также рекуррентные разностные уравнения решетчатого фильтра сигнала ошибки: ⎧ e(m) = e(m − 1) + r b(m − 1), ⎫ ⎪ n n m n −1 ⎪ ⎨ ⎬ m = 1, M , ( 1) m − ( m ) ( m − 1), ⎪b ⎪ ⎩ n = bn − 1 + rm en ⎭ где en = en( M ) ; bn = bn( M ) – выход фильтра, а начальные условия для рекуррентной процедуры – en(0) = xn ; bn(0) = xn . ( ) ( ) 7.6.2. Реализация ДИКМ Зная метод определения коэффициентов предсказания, рассмотрим блок-схему практической системы ДИКМ, показанную на рис. 7.7 [39, 40]. В этой схеме предсказатель стоит в цепи обратной связи, охватывающей квантователь (К). Вход предсказателя обозначен xn . Он представляет собой сигнальный отсчет xn , искаженный в результате квантования сигнала ошибки. Выход предсказателя (П) M xˆn = ∑ ak xn − k . (7.10) k =1 x (t ) АЦП { xn } + _ {en } { xˆ n } К П {en } к модему { xn } Рис. 7.7. Блок-схема практической системы ДИКМ 138 Разность en = xn − xˆn – вход квантователя, а en – его выход. Величина квантованной ошибки предсказания en кодируется последовательностью двоичных символов и передается через канал в пункт приема. Квантованную ошибку en также суммируют с предсказанной величиной x̂n , чтобы получить xn . В месте приема используют такой же предсказатель, как и на передаче. Выход речевого сигнала x̂n суммируют с en , чтобы получить xn (рис. 7.8). {en } { xn } { xˆ n } к ЦАП П {ak } Рис. 7.8. Схема предсказателя на приеме и передаче Сигналы xn являются входными для предсказателя. По ним с помощью ЦАП восстанавливается сигнал x ( t ) . Ошибка в xn становится ошиб- кой квантования qn = en − en . Использование обратной связи вокруг квантователя позволяет избежать накопления предыдущих ошибок квантования при декодировании qn = en − en = en − ( xn − xˆn ) = xn − xn . Следовательно, xn = xn + qn , что означает, что квантованный отсчет xn отличается от входа xn ошибкой квантования qn независимо от использования предсказателя. Значит, ошибки квантования не накапливаются. В рассмотренной выше системе ДИКМ оценка, или предсказанная величина x̂n отсчета сигнала, получается посредством линейной комбинации предыдущих значений xn − k , k = 1, 2, …, M. Улучшенное качество оценки можно получить включением в неё линейно отфильтрованных последних значений квантованной ошибки. Оценку x̂n можно выразить так: m l x?n = ∑ ak xn − k + ∑ bk en − k , k =1 k =1 139 где {b k } – коэффициенты фильтра для квантованной последовательности ошибок en . Блок-схемы кодера на передаче и декодера на приеме приведены ниже (рис. 7.9, 7.10). x ( t ) АЦП { xn } + { xˆ n } {en } К {e n } к модему _ Лин. фильтр {en } Лин. фильтр { xn } { bk } {ak } Рис. 7.9. Блок-схема кодера на передаче {en } { xn } Лин. фильтр { xˆ n } к ЦАП Лин. фильтр { bk } {ak } Рис. 7.10. Блок-схема декодера на приеме Здесь два ряда коэффициентов {a k } и {b k } выбираются так, чтобы минимизировать некоторую функцию ошибки en = xn − xˆn , например среднеквадратическую ошибку. 7.7. Способы кодирования речи на основе анализа временных параметров При цифровом кодировании стремятся по возможности к наиболее точному представлению речевого сигнала для того, чтобы по этому цифровому представлению восстановить исходный акустический сигнал. Другая задача – представление речевого сигнала совокупностью свойств или 140 параметров модели. Ряд сравнительно простых и полезных характеристик можно определить путем непосредственных измерений параметров самого сигнала, а именно по его ИКМ-представлению. Ключ ко всем параметрическим представлениям – процедура кратковременного анализа [46]. 7.7.1. Измерение энергии Одна из характеристик сигнала – его энергия. Энергия вещественного дискретного во времени сигнала x( n) ∞ (7.11) E = ∑ x2 ( n ) . n = −∞ Для нестационарных сигналов, например, речевого, более удобно вычислять изменяющуюся во времени энергию в виде: N −1 2 E ( n ) = ∑ ⎡⎣ w ( m ) x ( n − m ) ⎤⎦ , m =0 (7.12) где w(m) – весовая последовательность, или окно, которое выделяет участок x( n) , a N – количество отсчетов в окне. Таким образом, один из способов измерения энергии (7.12) основывается на сглаживании последовательности x(n) фильтром с импульсной реакцией W (n) . Как и следовало ожидать, функция E (n) отображает изменяющиеся во времени амплитудные свойства речевого сигнала. Однако формула (7.12) нуждается в тщательной интерпретации. Во-первых, это касается выбора окна, задача которого состоит в приписывании меньших весов более старым отсчетам речи, поэтому с увеличением m w(m) , как правило, монотонно стремится к нулю. Если на всем интервале отсчеты должны иметь одинаковый вес, используют прямоугольное окно. Во-вторых, трудность заключается в выборе интервала измерения N . При слишком малом N , когда его величина меньше периода основного тона, величина энергии Е(n), определяемой выражением (7.12), подвержена быстрым флуктуациям, зависящим от тонкой структуры сигнала. Если N слишком велико и равно нескольким периодам основного тона, величина E (n) изменяется незначительно и поэтому не может отразить изменяющиеся свойства речевого сигнала. Практически наиболее подходящее значение N при частоте дискретизации 10 кГц составляет величину порядка 100 – 200 отсчетов (10 – 20 мс речи). 141 Основное значение характеристики E (n) состоит в том, что она может служить хорошим критерием разделения вокализованных и невокализованных участков речи. На невокализованных участках величина E (n) намного меньше, чем на вокализованных. Кроме того, чем меньше N , тем меньше ошибка определения точного положения границ, где невокализированная речь переходит в вокализированную и обратно. Более того, применительно к высококачественной речи энергию можно использовать для отделения невокализированных участков речи от паузы. Процедура измерения энергии осложняется тем обстоятельством, что величина уровня возводится в квадрат, тем самым в E (n) появляются большие перепады. Один из сравнительно простых способов преодоления этой трудности – использование для оценки энергии функции, в которой вместо суммы квадратов вычисляется сумма абсолютных величин N −1 Eˆ = ∑ w ( n ) x ( n − m ) . (7.13) m=0 7.7.2. Измерение числа переходов через нуль Еще один весьма простой способ анализа временных параметров сигнала основан на измерении числа переходов через нуль. Имея в виду цифровое представление сигнала, можно утверждать, что между моментами взятия n -го и ( n − 1 )-го отсчетов произошло пересечение нулевого уровня, если sign [ x(n) ] ≠ sign [ x(n − 1) ] . (7.14) Это измерение несложно в реализации и часто используется для грубой оценки частотного содержания речевого сигнала. Возможность его применения объясняется тем, что для синусоидального сигнала с частотой f 0 среднее число пересечений нулевого уровня за 1 с (7.15) m = 2 f0 . Однако соотношение (7.15) нельзя без оговорок распространить на речевой сигнал, поскольку большая часть звуков речи имеет широкий спектр частот. Тем не менее иногда достаточно даже такой грубой оценки. Например, хорошо известно, что энергия вокализованной речи обычно концентрируется в диапазоне ниже 3 кГц, тогда как энергия фрикативных звуков в основном сосредоточена выше 3 кГц. На этом основании результаты измерений числа переходов через нуль (наряду с информацией об энергии) часто используются для принятия решения о том, вокализованный или не вокализованный характер имеет данный участок речи. Если частота пересечений высока, то это свидетельствует о не вокализо142 ванном характере речи, если же она мала, то весьма вероятно, что анализируется вокализованный участок. Число переходов через нуль в сочетании с измерением основного тона речи используется при оценке параметров возбуждения, а также при распознавании речи [43]. При цифровой реализации измерений числа переходов через нуль следует учитывать ряд важных обстоятельств. Хотя в соответствии с основным алгоритмом требуется произвести лишь сравнение знаков двух следующих друг за другом отсчетов, необходимо также весьма тщательно выполнять и саму процедуру дискретизации. Большие искажения в результаты измерений числа переходов через нуль вносят наличие шума, смещение уровня постоянного тока и напряжение фона с частотой питающей сети 50 Гц, поэтому для ослабления мешающего влияния указанных факторов перед устройством дискретизации вместо фильтра нижних частот ставится полосовой фильтр. Кроме того, поскольку временное разрешение при измерении числа переходов через нуль определяется периодом дискретизации Т, его повышение сопряжено с увеличением частоты дискретизации. Для измерения числа переходов через нуль можно применять двухуровневое квантование. 7.7.3. Кратковременный автокорреляционный анализ Функция автокорреляции дискретного во времени сигнала x( n) определяется как N 1 (7.16) ϕ ( m ) = lim ∑ x ( n) x ( n + m) . N →∞ 2N + 1 n =− N Автокорреляционная функция весьма полезна для выявления структуры любого сигнала, и в этом смысле речь не составляет исключения [46]. Если, например, некоторый сигнал имеет структуру с периодом T : x (n + T ) = x (n) для всех n , то ϕ ( m) = ϕ ( m + T ) . (7.17) Таким образом, периодичность автокорреляционной функции указывает на периодичность исходного сигнала. Если автокорреляционная функция в окрестности точки m = 0 имеет острый пик и с возрастанием m быстро падает к нулю, то это указывает на отсутствие в сигнале предсказуемой структуры. Как уже отмечалось, речь является нестационарным сигналом. Однако на коротких интервалах времени свойства речевого сигнала сохраняются неизменными. Как мы уже видели, это свойство служит основой кратковременного анализа. 143 Рассмотрим для примера отрезок сигнала из N отсчетов: x l (n) = x (n + l ), 0 ≤ n ≤ N − 1 , (7.18) где l – начало этого отрезка. В этом случае кратковременная автокорреляционная функция может быть определена как 1 p −1 ϕ l ( m) = (7.19) ∑ x ( n) xl ( n + m) , 0 ≤ m ≤ M0 −1, Nn=0 l где M 0 – максимально требуемая задержка. Так, например, для выявления периодичности сигнала необходимо выполнить условие M > T . Значение целого числа p оговорено ниже. Выражение (7.19) можно трактовать как автокорреляцию отрезка речевого сигнала протяженностью N отсчетов, начиная с отсчета l . Если p = N , то для вычисления используются отсчеты, находящиеся вне отрезка l < n < N + l − 1 ; если p = N − m , то – отсчеты только внутри интервала. В последнем случае исследуемый отрезок часто взвешивается с помощью функции окна, которая плавно сводит к нулю величины отсчетов на концах отрезка. Обычно предполагается, что для хранения существенных признаков речевого сигнала при его кодировании с помощью ИКМ может потребоваться частота дискретизации от 6 до 20 кГц, однако кодирование медленно изменяющихся параметров модели возможно со значительно меньшей частотой (от 50 до 100 Гц). Предположим для примера, что частота дискретизации речевого сигнала равна 10 кГц, а кратковременная автокорреляция должна вычисляться 100 раз в секунду. Оценка величины автокорреляции обычно производится на отрезках речевого сигнала длительностью 20 – 40 мс (для оценки периодичности сигнала длительность окна должна быть достаточной для перекрытия как минимум двух периодов речевого сигнала). Таким образом, при частоте дискретизации 10 кГц количество отсчетов находится в интервале 200 < N < 400 , а требуемые оценки величины автокорреляции должны вычисляться для приращения, равного 100 отсчетам [46]. При использовании кратковременной автокорреляционной функции для оценки периода основного тона желательно, чтобы эта функция имела острые пики с интервалом, кратным периоду T . Корреляционная функция речи не имеет острых пиков, поскольку структуру каждого периода речевого сигнала в значительной степени можно предсказать заранее. 144 7.8. Кодирование речи на основе адаптивного mel-кепстрального анализа Mel-кепстральные коэффициенты – популярные характеристики при исследовании речи и распознавании спикера. Достаточно часто системы кодирования речи используют авторегрессионное (AR – autoregressive) спектральное представление для кратковременного предсказания. Однако в некоторых случаях кепстральные коэффициенты позволяют достичь лучших результатов [4]. Кепстр – спектр, полученный преобразованием Фурье логарифма сигнала. Спектр, представленный mel-кепстральными коэффициентами, должен иметь разрешающую способность, по частоте подобную человеческому слуху, который имеет более высокую разрешающую способность на низких частотах. Поэтому ожидается, что использование mel-кепстра может быть эффективным для спектрального моделирования в кодерах речи вместо AR-моделирования. Чтобы продемонстрировать эффективность mel-кепстрального представления в кодировании речи, рассмотрим кодер АДИКМ, который использует кратковременный адаптивный предсказатель, основанный на melкепстральном представлении спектра речи. При этом mel-кепстральные коэффициенты будут обработаны алгоритмом для адаптивного melкепстрального анализа. Так как передаточная функция шумового формирования и постфильтрования также определена через mel-кепстральные коэффициенты, эффекты шумового формирования и постфильтрования должны соответствовать особенностям человеческого слухового ощущения. Качество речи кодера оценивается объективными и субъективными исследованиями. Показано, что высококачественная речь, соответствующая CCITT G.721 ADPCM-кодеру на скорости 32 кбит/с, может быть воспроизведена кодером на основе mel-кепстра на скорости 16 кбит/с без алгоритмической задержки. 7.8.1. Адаптивный mel-кепстральный анализ Модель спектра речи D (e jω ) , использующая М-й порядок mel-кепстральных коэффициентов C (m) , имеет вид M D ( z ) = exp ∑ C ( m ) z − m , m=0 z −1 − α , α < 1. где z −1 = −1 1− α z 145 (7.20) (7.21) Например, когда частота дискретизации равна 8 кГц, фазовая характеристика ω и передаточная функция при α = 0,31 будут приближенными к масштабу me1-частоты, основанному на субъективных оценках основного тона [4]. В mel-кепстральном анализе коэффициент усиления D ( z ) предполагается равным единице. При этом условии коэффициенты C (m) однозначно минимизированы: ε = E ⎡ e 2 ( n) ⎤ , ⎣ ⎦ где e(n) – выход обратного фильтра 1 D ( z ) , как показано на рис. 7.11. Адаптивный melкепстральный анализ решает проблему минимизации ошибx (n) e (n) ки с использованием оценки 1 D (z) для градиента ε . Исследования показывают, что адаптивный алгоритм имеет достаточно Рис. 7.11. Схема адаптивного быструю сходимость при анаmel-кепстрального анализа лизе речи. Сигнал e(n) может рассматриваться как ошибка линейного предсказания, поэтому адаптивный mel-кепстральный анализ может использоваться для кратковременного адаптивного предсказания вместо метода линейного предсказания. 7.8.2. Структура кодера Базовая структура кодера, основанного mel-кепстральном анализе, приведена на рис. 7.12. x (n) Кодировщик ê ( n ) Q D (z) − 1 на Декодер D (z) адаптивном x̂ ( n ) Цифровой канал Рис. 7.12. Базовая структура кодера Z-преобразование декодированной речи xˆ (n) будет иметь вид: Xˆ ( z ) = X ( z ) + Q( z ) , 146 (7.22) где X ( z ) и Q( z ) – это Z-преобразования от x(n) и q (n) соответственно, q (n) – квантованный шум, создаваемый квантователем Q . Передаточная функция D( z ) реализуется при использовании MLSA-фильтров. MLSA (Mel Logarithmic Spectral Approximation) – mel-логарифмический спектральный фильтр приближения, коэффициенты которого определяются mel-кепстральными коэффициентами согласно информации о высоте тона [10]. Ограничение шума и постфильтрация Передаточные функции D ( z ) и D ( z ) реализуются при использова- нии MLSA-фильтров. Мы можем также реализовать Dγ ( z ) и D β ( z ) тем же способом, что и D ( z ) и D ( z ) : умножением C (m) на γ и β соответственно. Чтобы избежать изменения усиления на выходе постфильтра, добавляем регулятор выходного усиления, который поддерживает выходной сигнал постфильтра таким образом, чтобы он имел приблизительно ту же самую мощность (энергию), что и нефильтрованная речь [4]. Передаточная функция D ( z ) аналогична D ( z ) за исключением того, что C γ (1) должно быть равно нулю, чтобы уравновешивать глобальный спектральный наклон. Настраиваемые параметры γ и β регулируют величину ограничения шума и постфильтрования соответственно. Рис. 7.13 показывает структуру кодера, основанного на mel-кепстральном анализе с ограничением шума и постфильтрованием. x (n) Кодировщик ê ( n ) Q Декодер D( z) Цифровой канал Dγ ( z ) − 1 x̂ ( n ) D β ( z) D( z) −1 Рис. 7.13. Структура кодера, основанного на адаптивном mel-кепстральном анализе Z-преобразование от декодированной речи xˆ ( n) будет иметь вид: { } Xˆ ( z ) = X ( z ) + Dγ ( z ) + Q ( z ) D β ( z ) . Передаточная функция Dγ ( z ) ограничивает D β ( z ) – постфильтрование. 147 (7.23) спектр шумов и Структура с предсказателем основного тона Рис. 7.14 показывает структуру кодера с предсказателем основного тона. Кодер x (n) ê p ( z ) Q 1 A( z ) Цифровой канал e( n ) Декодер D( z) An ( z ) − 1 Dγ ( z ) − 1 Ap ( z ) A( z ) − 1 Dβ ( z ) x̂ ( n ) e( n ) D(z)–1 Рис. 7.14. Структура кодера с предсказателем основного тона Z-преобразование от декодированной речи xˆ (n) будет иметь вид: ⎧⎪ ⎫⎪ Dγ ( z ) Xˆ ( z ) = ⎨ X ( z ) + (7.24) + Q ( z)⎬ Ap ( z) D β ( z) . A z ( ) ⎪⎩ ⎪⎭ n Передаточную функцию фильтра предсказания основного тона находят по формуле p +1 −k (7.25) A( z ) = 1 + ∑ a (k ) z . k = p −1 Период основного тона p и коэффициенты предсказателя основного тона a (k ) вычисляют на основе корреляции eˆ(n) , получающейся при использовании экспоненциального окна [4]. Передаточные функции An( z ) и A p( z ) определяют по формулам: p +1 (7.26) ( z ) = 1 + ε n ∑ a(k ) z − k , An k = p −1 148 ⎛ ⎞ p +1 − 1 ⎜ A p( z ) = 1 − ε p ∑ a (k ) z ⎟ ⎜ ⎟ k = p −1 ⎝ ⎠ ⎛ ⎞ p +1 ⎜ 1 − ε p ∑ a(k ) ⎟ . ⎜ ⎟ k = p −1 ⎝ ⎠ (7.27) Настраиваемые параметры ε n и ε p регулируют величину ограничения шума и постфильтрования соответственно. В декодере p и a (k ) всегда вычисляют по квантованным значениям eˆ(n) . 7.9. Кодирование речи в стандарте GSM GSM – это цифровая система, следовательно, аналоговая речь должна быть оцифрована на входе и восстановлена на выходе. Кодер речи – первый элемент собственно цифрового участка передающего тракта АЦП. Основная задача кодера – предельно возможное сжатие сигнала речи, т.е. предельно возможное устранение избыточности речевого сигнала но при сохранении приемлемого качества. Компромисс между степенью сжатия и сохранением качества отыскивается экспериментально, а проблема получения высокой степени сжатия без чрезмерного снижения качества составляет основную трудность при разработке кодера. В приемном тракте перед ЦАП размещен декодер речи; задача декодера – восстановление цифрового сигнала речи по принятому кодированному сигналу (с присущей ему естественной избыточностью). Сочетание кодера и декодера называют кодеком. Кодирование сигнала источника первоначально основывалось на данных о механизмах речеобразования. Этот метод использовал модель голосового тракта и приводил к системам типа анализ-синтез, получившим название вокодеров (кодер голоса, или кодер речи). Ранние вокодеры позволяли получать весьма низкую скорость передачи информации при характерном «синтетическом» качестве речи на выходе, поэтому вокодерные методы долгое время оставались в основном областью приложения усилий исследователей и энтузиастов и не находили широкого практического применения. Ситуация существенно изменилась с появлением метода линейного предсказания, предложенного в 1960-х гг. и получившего мощное развитие в 1980-х гг. на основе достижений микроэлектроники. В настоящее время в системах подвижной связи получили распространение вокодерные методы на базе метода линейного предсказания. Суть кодирования речи методом линейного предсказания (Linear Predictive Coding – LРС) заключается в том, что по линии связи переда149 ются не параметры речевого сигнала, а параметры фильтра, в определенном смысле эквивалентного голосовому тракту, и параметры сигнала возбуждения этого фильтра, в качестве которого используется фильтр линейного предсказания. Задача кодирования на передающем конце линии связи состоит в оценке параметров фильтра и параметров сигнала возбуждения, а задача декодирования на приемном конце – в пропускании сигнала возбуждения через фильтр, на выходе которого получается восстановленный сигнал речи. Значения коэффициентов предсказания, постоянные на интервале кодируемого сегмента речи (на практике длительность сегмента составляет 20 мс), находят из условия минимизации среднеквадратического значения остатка предсказания на интервале сегмента. Таким образом, процедура кодирования речи в методе линейного предсказания сводится к следующему: − оцифрованный сигнал речи нарезается на сегменты длительностью по 20 мс; − для каждого сегмента оцениваются параметры фильтра линейного предсказания и параметры сигнала возбуждения; в качестве сигнала возбуждения в простейшем случае может выступать остаток предсказания, получаемый при пропускании сегмента речи через фильтр с параметрами, найденными из оценки для данного сегмента; − параметры фильтра и параметры сигнала возбуждения кодируются по определенному закону и передаются в канал связи. Процедура декодирования речи заключается в пропускании принятого сигнала возбуждения через синтезирующий фильтр известной структуры, параметры которого переданы одновременно с сигналом возбуждения. Линейное предсказание является кратковременным (STP – ShortTerm Prediction) и не обеспечивает достаточной степени устранения избыточности речи, поэтому в дополнение к кратковременному предсказанию используется еще долговременное (LTP – Long-Term Prediction), в значительной мере устраняющее остаточную избыточность и приближающее остаток предсказания по своим статистическим характеристикам к белому шуму. В стандарте GSM применяется метод полноскоростного (13,6 кбит/с) кодирования речи RPE-LTP (Regular Pulse Excited Long-Term Predictor – линейное предсказание с возбуждением регулярной последовательностью импульсов и долговременным предсказателем) – стандарт GSM 06.10. Упрощенная блок-схема кодека приведена на рис. 7.15, 7.16 [15]. 150 КОДЕР Sn Оценка параметров фильтра кратковрем. предсказания Предварит. обработка Фильтр-анализатор кратковрем. предсказания P ( z ) fn Фильтр-анализатор кратковрем. предсказания A ( Z ) Оценка параметров фильтра долговрем. предсказания Оценка параметров сигнала возбуждения en На декодер Рис. 7.15. Блок-схема кодера кодека в стандарте GSM 06.10 Кодирование 1. Непрерывный речевой сигнал дискретизуется с частотой 8 кГц, и оцифровывается с равномерным законом квантования и разрядностью 13 бит/отсчет: число уровней квантования M = ±4096 = 213 , уровень шумов квантования Dq,дБ = 10 ⋅ lg1 12 ⋅ 2−2 R ≈ −90дБ . 2. Для повышения разборчивости речи осуществляют предыскажение входного сигнала при помощи цифрового фильтра, подчеркивающего верхние частоты. ДЕКОДЕР От кодера Формирование сигнала возбуждения f n′ Фильтр-синтезатор кратковрем. предсказания H ( z ) en′ Фильтр-анализатор долговрем. предсказания R ( Z ) Постфильтрация Sn′ Рис. 7.16. Блок-схема декодера кодека в стандарте GSM 06.10 3. Непрерывная последовательность отсчетов разбивается на сегменты по 160 отсчетов (длительностью 160·1/8 кГц = 20 мс). 151 4. Проводят «взвешивание» каждого сегмента окном Хэмминга – «косинус на пьедестале», при этом амплитуда сигнала внутри сегмента плавно падает от центра окна к краям. Это делается для того, чтобы не было резких разрывов сигнала на краях сегментов. 5. Для каждого 20-миллисекундного сегмента (160 «взвешенных» отсчетов сигнала) оценивают параметры фильтра кратковременного линейного предсказания. Оптимальные коэффициенты фильтра кратковременного линейного предсказания ak находят путем решения системы линейных уравнений Юла – Волкера: M ∑ ak R(k − l ) = R(l ), l = 1, 2, 3,…, M , M = 8 , k =l которая в матричной форме записывается следующим образом: a1 … R( M − 1) R(0) R(1) R(2) R(1) a2 R(2) … R ( M − 3) ⋅ a3 = R(3) . … … … … R ( M − 0) a R( M ) M Здесь R(0)… R( M ) – значения кратковременной автокорреляционной функции речевого сигнала, вычисленные по его отсчетам на текущем сегменте N −1 R(k ) = ∑ x(i ) x(i − k ), 0 ≤ i ≤ N − 1, 0 ≤ k ≤ M , N = 160, M = 8 . i=0 6. На основе полученных коэффициентов фильтра кратковременного предсказания проводят фильтрацию текущего речевого сегмента (160 отсчетов) фильтром-анализатором кратковременного предсказания (инверсным фильтром) с передаточной характеристикой M A( z ) = 1 − ∑ ak z −k . k =1 На выходе получается остаток (ошибка) кратковременного предсказания en (160 отсчетов ошибки кратковременного предсказания). При этом R(1) R (0) R(1) R(2) R(1) R (0) … … … R( M − 1) R ( M − 2) R( M − 3) … R( M − 2) из-за наличия в речевом сигнале долговременной повторяемости (периодичности), обусловленной гласными звуками, в ошибке кратковременного предсказания остаются периодические всплески достаточно большой амплитуды. Для их устранения (уменьшения) используется долговременное линейное предсказание. 152 7. Вычисляют параметры фильтра долговременного линейного предсказания с передаточной характеристикой P ( z ) = 1 − ∑ Gi z − D − i . i Сегмент остатка кратковременного линейного предсказания (160 отсчетов) разбивается на четыре подсегмента размером по 40 отсчетов. Параметры долговременного предсказания – коэффициент предсказания G и задержка D – оценивают для каждого подсегмента в отдельности. Укорочение интервала анализа долговременного предсказания обусловлено тем, что параметры сигнала возбуждения (с которыми связана его периодичность) изменяются гораздо быстрее, чем параметры голосового тракта (которые вошли в коэффициенты кратковременного линейного предсказания ak ). В каждом подсегменте находят параметр задержки D (период основного тона, определяемый как среднее расстояние между периодическими всплесками автокорреляционной функции остатка кратковременного предсказания) и коэффициент предсказания G (определяемый как наклон огибающей автокорреляционной функции остатка кратковременного предсказания). При этом параметр задержки D для текущего подсегмента вычисляют путем сглаживания (усреднения) текущего значения D и трех предшествующих ему значений (определенных на трех предыдущих подсегментах). 8. Сигнал остатка кратковременного линейного предсказания (подсегмент длительностью в 40 отсчетов) en обрабатывается фильтроманализатором долговременного линейного предсказания с параметрами G и D , найденными для этого подсегмента, и на его выходе получается остаток долговременного и кратковременного предсказания f n . Далее по этому сигналу будут находиться параметры сигнала возбуждения (в отдельности для каждого из подсегментов). 9. Сигнал возбуждения одного подсегмента состоит из 13 импульсов, следующих через равные промежутки времени (втрое реже, чем интервал дискретизации исходного сигнала) и имеющих различные амплитуды. Для формирования сигнала возбуждения 40 отсчетов подсегмент остатка f n обрабатывают следующим образом. Последний (40-й) отсчет отбрасывают, а первые 39 отсчетов прореживают и разбивают на три подпоследовательности: в первую включаются 1, 4, ... 37-й отсчеты, во вторую – отсчеты с номерами 2, 5, ... 38, в третью – отсчеты с номерами 3, 6, ... 39. В качестве сигнала возбуждения выбирают ту подпоследовательность, энергия которой больше. Амплитуды 153 импульсов нормируют по отношению к импульсу с наибольшей амплитудой. Нормированные амплитуды кодируют тремя битами каждую (с линейным законом квантования). Абсолютное значение наибольшей амплитуды кодируют шестью битами в логарифмическом масштабе. Положение первого импульса 13-элементной последовательности кодируют двумя битами, т.е. фактически кодируют номер последовательности, выбранной в качестве сигнала возбуждения для данного подсегмента. Таким образом, выходная информация кодера для одного 20-миллисекундного сегмента речи включает: − параметры фильтра кратковременного линейного предсказания – восемь коэффициентов на сегмент, кодируют 36 битами; − параметры фильтра долговременного линейного предсказания – коэффициент предсказания G и задержка D – для каждого из четырех подсегментов, также кодируют 36 битами; − параметры сигнала возбуждения – номер подпоследовательности n , максимальная амплитуда v , нормированные амплитуды импульсов последовательности bi , i = 1…13 – для каждого из четырех подсегментов. Все вместе кодируют 188 битами. Итого на 20 -миллисекундный сегмент речи (160 отсчетов) получается 260 бит. При этом коэффициент сжатия сегмента (по сравнению с ИКМ, использующей логарифмическую шкалу квантования 160 отсчетов по 8 бит/отсчет) составляет 1280/260 = 4,92 ≈ 5. Декодирование Последовательность выполняемых при декодировании функций представлена на рис. 7.16. Блок формирования сигнала возбуждения, используя полученные параметры сигнала возбуждения, восстанавливает 13импульсную последовательность сигнала возбуждения для каждого из подсегментов, включая амплитуды импульсов и их расположение во времени. Сформированный таким образом сигнал возбуждения обрабатывается фильтром-синтезатором долговременного предсказания, на выходе которого получается восстановленный остаток кратковременного предсказания. Последний обрабатывается фильтром-синтезатором кратковременного предсказания. Выходной сигнал фильтра-синтезатора кратковременного предсказания (а это уже почти синтезированный речевой сигнал) фильтруется цифровым фильтром низких частот, компенсирующим предыскажение, внесенное входным фильтром блока предварительной обработки кодера. Сигнал с выхода низкочастотного постфильтра является восстановленным цифровым сигналом речи. Все перечисленные процедуры несмотря на их сложность выполняются в реальном масштабе времени процессором обработки речи, реализованным аппаратно-программно в мобильном телефоне стандарта GSM. 154 Контрольные вопросы 1. Что дает кодирование речи? 2. Изложите методы кодирования речевой информации. 3. Каковы особенности ИКМ? 4. Каковы особенности законов μ и A , применяемых в кодировании речи? 5. Каковы особенности ДИКМ на основе ЛП? 6. Чем характеризуется алгоритм Левинсона – Дарбина? 7. Что такое решетчатый фильтр. Какова его граф-структура? 8. Каковы особенности практической системы ДИКМ? 9. Что такое кратковременный анализ речевого сигнала? 10. Как определяется энергия речевого сигнала? 11. Как определяется число переходов через нуль при анализе речевого сигнала? 12. Каковы особенности автокорреляционного анализа? 13. Каковы особенности кодирования на основе линейного предсказания? 14. Что такое постфильтрация и для чего она применяется? 15. Какова структура предсказателя основного тона? 16. Как происходят процессы кодирования и декодирования в стандарте GSM? 155 Глава 8. ЛАБОРАТОРНЫЙ ПРАКТИКУМ Практикум состоит из шести лабораторных работ, выполняемых на персональной ЭВМ. Содержание занятий – изучение методов и базовых алгоритмов обработки речевых сигналов путем их моделирования в среде MATLAB. Подготовка к занятиям выполняется дома. Она заключается в изучении теории и выполнении домашнего задания: подготовке тестовых примеров, разработке схем алгоритмов, написании программ, разработке набора тестов, подготовке и оформлении теоретической части отчета. Для допуска к лабораторной работе студент обязан предъявить преподавателю результаты домашней подготовки. В программах необходимо предусмотреть максимально возможную визуализацию процедуры решения, входных, промежуточных и окончательных данных. В лаборатории проводится отладка программ, исследования на тестовых примерах, дополнительные исследования, необходимость в которых возникает в процессе выполнения работы, анализ результатов. Отчет по работе должен содержать полную информацию по проделанной работе и выводы по результатам исследований. ЛАБОРАТОРНАЯ РАБОТА № 1. ДИСКРЕТНЫЕ СИГНАЛЫ И ИХ ОПИСАНИЕ ВО ВРЕМЕННОЙ ОБЛАСТИ Цель работы: получить навыки формирования различных вариантов детерминированных и случайных сигналов дискретного времени и их графического представления средствами MATLAB. 1. Основные теоретические сведения В теории дискретных систем рассматривается обработка сигналов, представляемых последовательностями. Чаще всего последовательности получаются путем дискретизации аналоговых сигналов. Последовательность чисел обозначается как X = { x ( n )} , n1 ≤ n ≤ n2 , (8.1) где x ( n ) – ее n -й член. Иногда для простоты выражение (8.1) записывают как x ( n ) , хотя это, строго говоря, некорректно. В этом случае следует учитывать контекст. 156 Дискретные сигналы (последовательности) часто графически изображаются так, как это показано на рис. 8.1. X(n) X(-1) X(-2) X(0) X(1) X(2) n -5 -4 -3 -2 -1 0 1 2 3 4 5 Рис. 8.1. Графическое представление дискретного сигнала Примеры дискретных сигналов: а) единичный импульс; б) единичная ступенчатая последовательность; в) действительная экспоненциальная последовательность; г) синусоидальная последовательность (рис. 8.2). Хотя абсцисса (см. рис. 8.1) изображена в виде непрерывной линии, следует понимать, что x ( n ) определена только для целых значений n . Для других значений аргументов функция считается неопределенной. Рис. 8.2. Графики дискретных сигналов (последовательностей) Единичный импульс δ ( n ) определяется как последовательность со ⎧1, n = 0 значениями δ ( n ) = ⎨ . 0, 0 ≠ n ⎩ Единичный импульс играет для дискретных сигналов и систем ту же роль, какую играет дельта-функция для аналоговых сигналов и систем. Для удобства единичный импульс часто называется просто импульсом. Важно 157 отметить, что с единичным импульсом не связаны те математические затруднения, которые встречаются при использовании дельта-функции. Единичная ступенчатая последовательность u ( n ) имеет значения ⎧ 1, n ≥ 0 и связана с единичным импульсом соотношением: u (n) = ⎨ ⎩ 0, n < 0 ∞ n u (n) = ∑ δ (n − k ) = ∑ δ ( k ) . (8.2) k =0 k = −∞ Единичный импульс связан с единичной ступенчатой последовательностью соотношением δ ( n ) = u ( n ) − u ( n − 1) . (8.3) Действительная экспоненциальная последовательность – это последовательность a n , где a – действительное число. Эту последовательность можно, например, получить периодическим (с периодом Т или частотой F d = 1 T ) взятием отсчетов (выборок) экспоненты непрерывного времени x ( n ) = e − α t t = n T = e − α n T = a n , где a = e− α T . Синусоидальная последовательность имеет вид x ( n ) = A cos ω 0 n + ϕ , ее также можно получить периодическим (с пе- ( ) риодом T ) взятием отсчетов синусоиды непрерывного времени x ( n ) = A cos где ω 0 = Ω 0T . ( Ω 0 t + ϕ ) t = nT = A cos ( Ω 0 nT + ϕ ) = A cos (ω 0 n + ϕ ) , Комплексная экспоненциальная последовательность имеет вид ( x ( n ) = e σ + jω 0 ) n = eσ n ( cos ω 0 n + j sin ω 0 n ) . Последовательность x ( n ) периодическая с периодом N , если x ( n ) = x ( n + N ) для всех n . Комплексная экспонента с σ = 0 и синусоидальная последовательность имеют период 2π ω 0 только тогда, когда 2π ω 0 – целое действительное число. Если оно не целое, но рациональное число, то дискретная синусоидальная последовательность будет периодической, однако с периодом, большим 2π ω 0 . Если 2π ω 0 не рационально, то синусоидальная и комплексная экспоненциальная последовательности не будут периодическими. Параметр ω 0 называют цифровой частотой синусоиды или комплексной экспоненты вне зависимости от того, периодичны они или нет. 158 Произвольная последовательность может быть представлена как сумма взвешенных и задержанных единичных импульсов. Например, последовательность p ( n ) , изображенную на рис. 8.3, можно записать как p (n) = a−3 δ ( n + 3) + a 1 δ ( n − 1) + a 2 δ ( n − 2 ) + a 7 δ ( n − 7 ) . В общем случае произвольная последовательность имеет вид ∞ x ( n) = ∑ x ( k )⋅ δ ( n − k ) . k = −∞ (8.4) P(n) a1 a −3 2 7 8 n -5 -4 -3 -2 -1 0 1 3 4 5 6 a2 a7 Рис. 8.3. Пример последовательности, представляющей сумму взвешенных задержанных единичных импульсов 2. Задание и методические указания по выполнению работы Дискретный сигнал есть последовательность чисел, поэтому в MATLAB он представляется в виде вектора-столбца. Если необходима многоканальная обработка сигналов, удобно использовать второе измерение, представив набор сигналов в виде матрицы. Многоканальная обработка поддерживается многими функциями MATLAB. Если сигнал одномерный, то в большинстве случаев функции MATLAB правильно обработают его при любой ориентации вектора: как в виде строки, так и в виде столбца. Однако в многоканальном случае, когда входной сигнал представлен в виде матрицы, обработка проводится по столбцам. Таким образом, столбцы матрицы трактуются как сигналы разных каналов, а строки – как отдельные векторные отсчеты многоканального сигнала. Для избежания возможной путаницы рекомендуется и в одноканальном случае формировать сигналы в виде столбцов. 1. Сформируйте единичный импульсный сигнал δ ( n − 15 ) и еди- ничный ступенчатый сигнал u ( n − 10 ) при значениях целочисленной переменной n = 1…30 . Отобразите их графически, используя функцию stem. С помощью команды help stem выясните, как пользоваться этой функцией. Сформируйте и представьте графически разностный сигнал 159 x(n) = u ( n − 10 ) − u ( n − 11) . Интерпретируйте этот сигнал как δ ( n − k ) в соответствии с соотношением (8.3) и найдите величину k из вашего рисунка. Сформируйте и представьте графически другой разностный сигнал x 2 ( n ) = u ( n − 10 ) − u ( n − 15 ) . Найдите из рисунка длительность полученного таким образом прямоугольного импульсного сигнала. Выразите этот сигнал как сумму единичных импульсов на основе соотношения (8.2) и сформируйте его таким образом. 2. Сформируйте сигнал, состоящий из 40 отсчетов дискретновременной синусоиды x ( n ) = sin (ω n ) , n = 1… 40 , с цифровыми частотами ω = 0,1; 0,2; 0, 4; 0,8 рад соответственно. Отобразите их графически, используя функцию stem. Предположив, что период выборок T = 0,1 с, вычислите аналоговые частоты F (Гц) каждой из синусоид, используя заданный выборочный интервал и соответствующие цифровые частоты ω . Перерисуйте графики сигналов с обозначением оси времени и зафиксируйте вычисленные аналоговые частоты соответствующих синусоид, используя функцию title. Как изменяются графики с увеличением частоты? 3. Предположим, что аналоговый косинусоидальный сигнал задан соотношением x ( t ) = A cos ( 2π F t + ϕ ) , t ∈ [t 0, t1] с амплитудой A = 5 , частотой F = 10 Гц, начальной фазой ϕ = π 3 , t 0 = 0, t 1 = 100 с. Выполните дискретизацию этого сигнала с периодом взятия выборок T = 10 − 2 с и отобразите полученный дискретный сигнал графически. Для визуализации дискретных сигналов могут использоваться различные графические средства в зависимости от конкретной ситуации. Часто вполне допустимо соединение дискретных отсчетов линиями, что выполняется с помощью функции plot. При этом получается график аналогового сигнала с линейной интерполяцией его отсчетных значений, где сами отсчетные значения не видны. Если необходимо отобразить именно их, то, используя функцию plot, можно отказаться от соединения точек линиями. Кроме этого можно использовать функции stem и stairs, специально предназначенные для отображения дискретных сигналов в виде «стебельков» и в ступенчатом виде (кусочно-постоянная интерполяция) соответственно. Реализуйте все эти варианты графического представления сформированного дискретного сигнала, отображая их одновременно при помощи функции subplot. Вычислите частоту дискретизации сигнала F d , сравните ее с частотой F . Как должна выбираться частота дискретизации в соответствии с теоремой отсчетов (теоремой Котельникова)? Проверьте наличие эффекта наложения (подмены частот) в случае, если F > F N = F d 2 ( F N – частота Найквиста). 160 4. Создайте комплексный дискретный сигнал x ( n ) = e jω n, n = 1… 40 с ω = 0,2 рад. Получите реальную и мнимую части сигнала с помощью функций real и imag, отобразите их графически. Используйте команды subplot (2,1,1) и subplot (2,1,2) перед каждой функцией stem, чтобы создать два графика реальной и мнимой частей сигнала, размещенных на одном экране. ЛАБОРАТОРНАЯ РАБОТА № 2. РАБОТА С РЕЧЕВЫМИ ДАННЫМИ В СРЕДЕ MATLAB Цель работы: получить начальные навыки со звуковыми сигналами в среде MATLAB. 1. Основные теоретические сведения приведены в гл. 1. 2. Задания и методические указания по выполнению работы 1. С помощью микрофонной гарнитуры введите в компьютер речевой сигнал (свою фамилию). Для этого удобно использовать программу «Звукозапись» из раздела «Стандартные – Развлечения». 2. С помощью команды wavread импортируйте речевой сигнал в среду MATLAB. Определить параметры: Fs, bits. 3. Постройте график сигнала с помощью команды plot и subplot. 4. Определите время звучания и объем памяти для записанного сигнала. 5. Выберите данные фрагмента сигнала, где n1=5000, а n2 рассчитывается по формуле n2=1000N, где N – номер фамилии студента в журнале. 6. Повторите пп. 3 и 4 для фрагмента сигнала, полученного по п. 5. 7. С помощью микрофонной гарнитуры и команды wavrecord введите в компьютер речевой сигнал (фамилию студента), применив Fs =8000; 11025. 8. Запишите вектор (или матрицу) полученной по п. 7 записи на диск в виде wav-файла и mat-файла. ЛАБОРАТОРНАЯ РАБОТА № 3. КОРРЕЛЯЦИОННАЯ ОБРАБОТКА СИГНАЛОВ Цели работы: 1) практическое ознакомление с реализацией процедуры измерения автокорреляционной функции в среде MATLAB; 2) моделирование нескольких примеров применения корреляционного анализа случайного стационарного процесса (ССП): – для выявления периодического сигнала, который маскируется шумом; – измерения частоты основного тона голосового сигнала. 161 1. Основные теоретические сведения приведены в гл. 2. 2. Задания и методические указания по выполнению работы 1. Решите задачу выявления периодического сигнала, который маскируется шумом, при условиях, что ССП Y (t ) представляет собой адди- тивную смесь гармонического процесса S (t ) = A cos(2π f 0t + ϕ ) с неизвестными амплитудой A , частотой f0 (значение которой находится в пределах 100 – 500 Гц), случайной фазой, равномерно распределенной на интервале [0,2π ] , и гауссовского белого шума в полосе частот 0 – 5 кГц; отношение сигнал-шум этой смеси равняется ρвх . 1.1. В среде MATLAB создайте модель аддитивной смеси с заданными параметрами и постройте ее график. 1.2. Постройте график функции корреляции сгенерированной смеси. 1.3. Рассчитайте объем N экспериментальной выборки отсчетов сгенерированной смеси, которая необходима для обеспечения отношения сигнал-шум ρвых = 10дБ на выходе коррелятора. 1.4. Вычислите и постройте график оценки автокорреляционной функции ССП Y (t ) . 2. Осуществите натурный (полномасштабный) эксперимент измерения частоты основного тона голосового сигнала с применением автокорреляционного метода. 2.1. Используя телефонную гарнитуру и программу MATLAB, введите голосовой сигнал в компьютер, предварительно выбрав частоту дискретизации. 2.2. Выделите фрагменты введенного голосового сигнала, которые отвечают гласным звукам, и осуществите их автокорреляционный анализ со следующим измерением частоты основного тона (см. табл. 1). Таблица 1 Варианты значений числовых параметров Параметры ρвх f0 1 –10 2 –11 3 –12 Вариант 4 5 –13 –14 80 100 120 140 160 6 –15 7 –16 8 –17 180 200 220 Слово Примечание. В графу «Слово» каждый записывает свою фамилию. 162 3. Вспомогательная теория Для выполнения данной лабораторной работы введите в рабочее пространство программы MATLAB числовые значения параметров из табл. 1. 1. Выявление периодического сигнала, который маскируется шумом. Для аддитивной смеси Y (t ) = S (t ) + ξ (t ) сигнала S (t ) = A cos(2πf0 t + ϕ ) и шума ξ (t ) отношение сигнал-шум – это отношение средней мощности (дисперсии) A2 2 сигнала к средней мощности (дисперсии) Dξ шума: A2 2 ρвх = . Dξ Для генерирования отсчетов процесса Yi = Y (ti ) = Y (i ⋅ Δt ) с заданным отношением сигнал-шум можно произвольно задать A или Dξ , другой параметр при этом вычисляется через ρвх . Например, если примем Dξ = 1 , тогда параметр A равняется: 10 ⋅ lg 2 + ρвх 20 A = 10 . 2. При построении графика процесса J(t) используйте следующие обозначения: t = i ⋅ Δt , τ = j ⋅ Δt . Выберите Δt = 1 2 B , где B – верхняя граничная частота белого шума в полосе [0, B ] Гц. Корреляционный анализ случайного процесса помогает решить задачу выявления периодического сигнала на фоне шума. Поскольку составные части процесса Y (t ) статистически независимы, то KY (τ ) = K S (τ ) + Kξ (τ ) , (8.5) sin 2 π Bτ A2 , (8.6) где K S (τ ) = cos ω 0 τ ; Kξ (τ ) = Dξ 2 2π Bτ где B – верхняя граница частоты шума ξ (t ) . 3. Для построения графика корреляционных функций (8.5) и (8.6) дискретизуем функцию (8.5) с шагом Δt = 1 2 B и получаем ⎛π f ⎞ sin π i A2 . cos ⎜ 0 ⎟ i; Kξ (τ ) = Dξ K S (τ ) = πi 2 ⎝ B ⎠ Видим, что форма корреляционной функции процесса Y (t ) для τ ≥ 1 2B практически не отличается от формы гармонического сигнала S (t ) . Этот факт позволяет по частоте переходов через нуль оценить частоту f0 . 163 Такой способ оценивания f0 имеет смысл применять при малых отношениях сигнал-шум ρвх , когда сигнал практически полностью маскируется шумом. 4. На практике можно лишь оценить функцию корреляции, потому, конечно, результаты выявления гармонического сигнала на фоне шума будут не такими «красивыми». Структурная схема коррелометра показана в гл. 2. Для отрезка YT (t ) процесса Y (t ) несмещенная оценка функции корреляции имеет вид: 1 T −τ KY* (τ ) = ∫ Y (t ) YT (t + τ ) dt . T −τ 0 T Коррелометр способен повышать отношение сигнал-шум при увеличении числа некоррелированных отсчетов шума N , содержащихся в реализации процесса, который анализируется. Формула для вычисления N для заданных входного и выходного отношений сигнал-шум имеет вид: ( ) N = 100,1 p вых − 2 p вх + 10 ⋅ lg 2 . Пример экспериментального измерения частоты основного тона можно найти в гл. 2. ЛАБОРАТОРНАЯ РАБОТА № 4. СПЕКТРАЛЬНАЯ ОБРАБОТКА СИГНАЛОВ Цели работы: 1) практическое ознакомление с реализацией процедуры измерения спектра случайного стационарного процесса (ССП) в среде MATLAB; 2) моделирование нескольких примеров применения спектрального анализа случайных процессов, а именно: – выявление периодического сигнала, который маскируется шумом; – измерение частот аддитивной смеси нескольких гармонических колебаний; – измерение частоты основного тона голосового сигнала. 164 1. Основные теоретические сведения подробно описаны в гл. 2. 2. Задания и методические указания по выполнению работы 1. Смоделируйте задачу выявления периодического сигнала, который маскируется шумом, при следующих условиях: – ССП Y (t ) представляет собой аддитивную смесь гармонического процесса S (t ) = A cos (2π f0 t + ϕ ) с неизвестной амплитудой A , частотой f0 (значение которой находится в пределах 80 – 220 Гц), случайной фазой, равномерно распределенной на интервале [0,2π ] , и гауссовского белого шума в полосе частот 0 – 5 кГц; – отношение сигнал-шум этой смеси равняется ρвх . 2. Смоделируйте в среде MATLAB аддитивную смесь с заданными параметрами. 3. Рассчитайте объем N экспериментальной выборки отсчетов сгенерированной смеси, которая необходима для обеспечения отношения сигнал-шум ρвых = 10 дБ на выходе цифрового спектроанализатора, вычисляющего периодограмму. 4. Вычислите и постройте график разных оценок спектра ССП Y (t ) : – периодограмма; – оценка Бартлетта; – оценка Велча с 50 %-м перекрытием сегментов. 5. Вычислите и постройте график тех же оценок спектра ССП Y (t ) при условиях увеличения N в 100 раз, при длине сегмента N1 , равной «старому» значению N . 6. Осуществите спектральный анализ суммы двух гармонических колебаний (без фонового шума) при следующих условиях: – частота первого колебания f01 = f0 , частота второго колебания f 02 = f0 + 5Δf , где Δf = 1 T = 2 B N ; – мощности обеих гармоник одинаковы; – N =1024. 7. Осуществите натурный эксперимент по измерению частоты основного тона голосового сигнала с применением спектрального анализа. Используя предыдущие записанные слова, введите их в рабочее пространство программы sptool. Осуществите спектральный анализ со следующим измерением частоты основного тона: – периодограмма; – оценка Бартлетта; – оценка Велча с 50 %-м перекрытием сегментов. 165 3. Вспомогательная теория 1. Для выполнения данной лабораторной работы введите в рабочее пространство программы MATLAB числовые значения параметров согласно табл. 2. Таблица 2 Варианты значений числовых параметров Вариант Параметры ρвх 1 2 3 4 5 6 7 -–10 L-–11 L-–12 L-–13 L-–14 L-–15 L-–16 f0 80 В Слово 8 –17 100 120 140 160 180 200 220 5000 5000 5000 5000 5000 5000 5000 5000 Примечание. В графу «Слово» каждый записывает свою фамилию. 2. Сформируйте аддитивную смесь гармонического процесса и белого шума Y (t ) = S (t ) + ξ (t ) . Для сигнала S (t ) = A cos(2π f0 t + ϕ ) и шума ξ (t ) входное отношение сигнал-шум A2 2 A2 2 . , или в децибелах ρвх = ρвх. дБ = 10 ⋅ lg D D ξ ξ Если примем Dξ = 1, тогда 10 ⋅ lg 2 + ρвх.дБ 20 A = 10 . Если за сигнал на выходе спектроанализатора принять высоту пика математического ожидания отрезка гармонического процесса, а за шум – математическое ожидание уровня спектра шума, то ρвых.сп = ρвх ⋅ TB . В действительности за уровень шума принимают не уровень спектра шума, а среднеквадратичную погрешность оценки спектра шума. Можно показать, что для оценки в виде периодограммы эти два разных определения отношения сигнал-шум совпадают. Выигрыш в отношении сигналшум за счет спектрального анализа достигает величины ρвых.сп = TB, ρвх где T – длина отрезка, B – верхняя предельная частота шума. 166 Отсюда ) ( 10 ⋅ log TB = p вых.сп log − p ⇒ TB = 100,1 p вых.сп log − p вх log . вх log 3. Рассчитайте нужное количество отсчетов процесса по следующей формуле: 0,1( p вых.сп log − p вх log ), T N= = 2TB = 2 ⋅ 10 Δt где p вых.сп log и p вх log – логарифмические значения входной и выходной спектральной мощности соответственно. 4. Вычислите периодограмму, которую в среде MATLAB можно рассчитать с помощью функции periodogram. 5. Найтите оценки. В данной лабораторной работе для оценки Велча следует использовать свой вариант окна по табл. 3. 6. При вычислении и построении графиков разных оценок спектра ССП Y (t ) (п. 4) используйте функцию subplot. 7. Измерьте частоты основного тона голосового сигнала с применением спектрального метода. Активизируйте программу sptool, экспортируйте в ее рабочее пространство сигнал, который отвечает целому слову и отдельному гласному звуку из него. Таблица 3 Типы окон Номер варианта 1 2 3 4 5 6 7 8 Окно Прямоугольное Треугольное Бартлетта Блэкмена Чебышева (40db) Хэмминга Хэннинга Кайзера (beta = 6) Синтаксис Window = boxcar (N1) Window = triang (N1) Window = bartlett (N1) Window = blackman (N1, ‘symmetric’) Window = chebyshev (N1, 40) Window = hamming (N1, ‘symmetric’) Window = hanning (N1, ‘symmetric’) Window = kaiser (N1, 6) Вычислите (в среде программы sptool) те же разновидности оценок спектра: периодограмму, оценку Бартлетта, оценку Велча. Параметр Nfft для оценки в виде периодограммы вычислите по формуле N f f t = (t2 − t1) F d , где t1 и t2 – моменты начала и конца фрагмента ( t1 = 0); F d =11025 Гц. 167 ЛАБОРАТОРНАЯ РАБОТА № 5. РАСЧЕТ ЦИФРОВЫХ ФИЛЬТРОВ В СРЕДЕ MATLAB Цель работы: провести исследования по применению фильтров для обработки речевых сигналов в системе MATLAB. 1. Основные теоретические сведения 1.1. Расчет коэффициентов цифрового фильтра Для расчета коэффициентов ak ( при k = 0,…, N ) цифрового фильтра (ЦФ) используют следующие расчетные формулы: ak = a−k = ωc Ω c s in k Ω c Ωc = S a (k Ω c ) , π kΩc π fc где Ω c = = 2π , S a ( x ) = sin x x , ω c – частота среза (иногда ее fd fd обозначают ωâ и называют «верхняя граничная частота»), f d – частота дискретизации и fс – частота среза. Рассмотрим пример ФНЧ 6-го порядка ( N = 3 ) для fс =25 Гц, f d =100 Гц, коэффициенты фильтра: a 0 = 0,5 , a 1 = a −1= 1 π = 0,3183 , a 2 = a −2= 0 , a 3 = a −3= −1 3π = −0,1061 . Интересно и полезно проверить, действительно ли эти коэффициенты с точностью до коэффициента Δ t = 1 f d совпадают со значениями ИПХ h ( k Δ t ) : a k = Δ th ( k Δ t ) . ⎛ f ⎞ Обратное преобразование Фурье от функции H ( f ) = rect ⎜ дает ⎜ 2 f ⎟⎟ ⎝ c⎠ выражение для ИПХ аналогового фильтра: h ( t ) = 2 f c S a ( 2π f c t ) , откуда следует 1 h ( k Δ t ) = 2 f c S a ( 2π f ck Δ t ) = f d Ωc S a ( k Ωc ) = a . Δt k π Сравнение позволяет обнаружить различие «по вертикали» ИПХ аналогового и цифрового фильтров. Рассмотрим различие «по горизонтали». 168 1 . В рассмотренном 2fc примере было принято f c = f d 4 = 1 4 Δt , откуда следует Δτ = 2 Δ t . Действительно, коэффициент a 2 = 0 . Ясно также, что все четные коэффициенРасстояние между нулями функции h(t) Δτ = ты должны быть равны нулю. Для иллюстрирования примера, построим график функции h(t) (рис. .4). % График ИПХ непрерывного ФНЧ dt=1; % шаг дискретизации; dtau=2*dt; % расстояние между нулями; fc=1/(2*dtau); % частота среза t=-3*dtau:0.1:3*dtau; % время h=2*fc*sinc(2*fc*t); % ИПХ plot(t,h) % график grid on % сетка на графике Рис. 8.4. График ИПХ непрерывного ФНЧ Построим частотную характеристику рассчитанного N (рис. 8.5): H d ( ω ) = a 0 + 2 ∑ a k c o s ω k Δ t . a0=0.5; ak=[0.3183 0 -0.1061]; dt=1; N=3; df=0.02; k =1 % коэффициенты фильтра c 1 по 3 169 фильтра f=-0.5:df:1.5; % диапазон частот sum=0; for k=1:N, sum=sum+ak(k)*cos(2*pi*f*k*dt); end; H=a0+2*sum; % ЧХ; plot(f,H); grid on Рис. 8.5. Частотная характеристика ФНЧ 3-го порядка (N = 3) Как видно из графика на рис. 8.5, частотная характеристика фильтра 3-го порядка существенно отличается от прямоугольника с относительной частотой среза fc f d = 1 4 . Полагая, что причина тому – малый порядок фильтра, рассмотрим случай N = 9 и досчитаем недостающие коэффициенты ИПХ с нечетными номерами (коэффициенты с четными номерами равны нулю) (рис. 8.6): a 5 = 0,0637 ; a 7 = −0,0455 ; a 9= 0,0354 . % Частотная характеристика ФНЧ a0=0.5; ak=[0.3183 0 -0.1061 0 0.0637 0 -0.0455 0 0.0354]; % коэффициенты фильтра c 1 по 9 dt=1; N=9; df=0.02; f=-0.5:df:1.5; for k=1:N, sum=sum+ak(k)*cos(2*pi*f*k*dt); end H=a0+2*sum; plot(f,H); grid on 170 Рис. 8.6. Частотная характеристика ФНЧ 3-го порядка (N=9) Как следует из рис. 8.6, частотная характеристика действительно становится более прямоугольной, но степень осцилляций слева и справа частоты среза не уменьшается. Применим треугольное окно к ИПХ фильтра 18-го порядка ( N = 9 ) (рис. 8.7). % Частотная характеристика ФНЧ a0=0.5; ak=[0.3183 0 -0.1061 0 0.0637 0 -0.0455 0 0.0354]; fd=100; dt=1/fd; N=9; r=1:N; k(r)=ak(r).*(1-r/N); df=0.02*fd; f=-0.5:df:1.5; sum=0; for k=1:N, sum=sum+ak(k)*cos(2*pi*f*k*dt); end H=a0+2*sum; plot(f,H); grid on Рис. 8.7. Частотная характеристика ФНЧ 18-го порядка (N=9) 171 Как и следовало ожидать, осцилляции уменьшились, однако за это пришлось «заплатить» уменьшением крутизны склонов частотной характеристики в районе частоты среза. 1.2. Расчет цифровых фильтров в среде MATLAB В среде MATLAB цифровые фильтры можно рассчитывать, по меньшей мере, тремя способами: из командного окна; с помощью пакета sptool; с помощью пакета fdatool. 1. Расчет цифровых фильтров из командного окна Функция fir1 реализует вычисления по методу обратного преобразования Фурье с использованием окон: a=firl(n,Wn,’ftype’,window,’normalization’), где n – порядок фильтра (количество коэффициентов равно n+1), его лучше задавать четным (так как для некоторых типов фильтров нечетное n хотя и можно задавать, но результат будет такой, как если бы задавался порядок на единицу больше); Wn – относительная частота среза (по отношению к частоте Найквиста, которая принимается равной единице); представляет собой вектор из двух чисел, если фильтр полосовой или режекторный и вектор из m пар чисел, если фильтр многополосный, из m полос; ‘ftype’ – тип фильтра (если отсутствует – ФНЧ; ‘high’ – ФВЧ; ‘stop’ – режекторный; ‘DC-1’ – многополосный пропускающий; ‘DC-0’ – многополосный режекторный); window – вектор-столбец из n+1 элементов (по умолчанию применяется окно Хэмминга hamming(n+1)); ‘normalization’ – нормировка ИПХ (по умолчанию значение ‘scale’ – единичное значение коэффициента передачи в центре полосы пропускания; ‘noscale’ – нормировка не производится). Пример % расчет коэффициентов КИХ-фильтра с нормализацией window=rectwin(7) % синтез прямоугольного окна из 7 отсчетов a=fir1(6,0.5,window); Результат a =[–0,1148 0,0000 0,3443 0,5409 0,3443 0,0000 –0,1148] Сравнивая эти результаты с рассчитанными вручную коэффициентами, нетрудно увидеть разницу. Например, расчеты вручную дают а 0 = 0,5 , тогда как в MATLAB мы получили а 0 = 0,5409 . Естественно предположить, что причина тому – проводимая по умолчанию нормировка ИПХ. Проверяем это предположение, задавая в программе значение ’noscale’ для параметра нормализации: window=rectwin(7); a=fir1(6,0.5,window,’noscale’). 172 Результат: a = [– 0,1061 0,0000 0,3183 0,5000 0,3183 0,0000 – 0,1061]. 2. Расчет цифровых фильтров с помощью пакета sptool Для активизации пакета нужно в командном окне набрать команду sptool или открыть его следующим образом: start → toolboxes → More… → Signal Processing → Signal Processing tool (sptool). Затем в появившемся окне в колонке кнопок Filters необходимо нажать кнопку New. В возникшем окне Filter Designer нужно: - задать частоту дискретизации 100 Гц; - выбрать в позиции Design Method выбрать FIR-значение Kaiser Window FIR (выбираем из трех вариантов: Equiripple FIR, Least Square FIR и Kaiser Window FIR); - отключить флажок Minimum Order; задать Order = 6; Type = = lowpass; Passband Fc = 25; - отключить флажок Autodesign; закрыть окно Filter Designer; - в окне sptool в колонке Filters нажать кнопку View. В появившемся окне Filter Viewer наблюдаем графики АЧХ, ФЧХ, ИПХ (ИПХ наблюдаем после активизации соответствующего флажка). Мы выбрали в позиции Design Method значение Kaiser Window FIR. Кроме данного алгоритма есть еще два: Equiripple FIR, Least Square FIR. Из всех трех алгоритмов только алгоритм Кайзера реализует метод обратного преобразования Фурье с весовым окном Кайзера. При значении параметра «0» окно Кайзера превращается в обычное прямоугольное окно. Как показывает эксперимент, рассчитанные таким образом коэффициенты ФНЧ оказываются ненормированными, т.е. в точности равными вычисленным вручную. Чтобы узнать значения коэффициентов, нужно: - активизировать график ИПХ, щелкнув по нему мышкой; - активизировать вертикальные маркеры (кнопкой, расположенной под меню); - поместить один из маркеров (всего имеется два маркера: первый изображается сплошной вертикальной линией, второй пунктирной) напротив нужного отсчета ИПХ; - рассчитать значение отсчета ИПХ в специальном окне. Другой способ в зависимости от версии MATLAB – нажать на специальную кнопку Filter coefficients. 173 3. Расчет фильтра {ak } с помощью пакета fdatool Для активизации пакета нужно в командном окне набрать команду fdatool, затем в появившемся окне в разделе Design Filter задать: - Designe Method: FIR=Window; - Window Specifications: Window = Rectangular; - Filter order: Specify order = 6; - частоту дискретизации (Fs = 100 Гц); - Filter Type = lowpass; - Passband Fc=25. С помощью кнопок под меню включаем режим просмотра коэффициентов фильтра. В результате проведенных расчетов убеждаемся, что здесь по умолчанию проводится нормирование ИПХ (см. выше fir1). 2. Задания и методические указания по выполнению работы Необходимо выполнить следующее: 1. С помощью микрофонной гарнитуры введите в компьютер речевой сигнал (фамилию студента) с параметрами: длительность – несколько секунд; частота дискретизации – 11 025 Гц. Для ввода сигнала в компьютер удобно использовать программу «Звукозапись» из раздела «Стандартные – Развлечения». 2. С помощью команды y = wavread('filename') импортируйте речевой сигнал в среду MATLAB, постройте график сигнала с помощью команды plot. 3. Запустите программу sptool и импортируйте сигнал y в её среду. 4. Визуализируйте и прослушайте введенный сигнал с помощью инструментария программы sptool. 5. Синтезируйте НЧ фильтр с окном Кайзера минимального порядка; граничная частота полосы пропускания 1 500 Гц; неравномерность в полосе пропускания 1 дБ; граничная частота полосы задержания 2 000 Гц; минимальное затухание в полосе задержания 40 дБ. 6. Примените синтезированный НЧ фильтр к вашему речевому сигналу. 7. Прослушайте сигнал, полученный в результате НЧ фильтрации, постройте его график и ответьте на следующие вопросы. Как и почему изменилось звучание речевого сигнала после фильтрации? Что произойдет, если граничные частоты полос пропускания и задержания уменьшить вдвое? Экспериментально проверьте свои предположения. 8. Подберите оптимальные с вашей точки зрения параметры НЧ фильтра. Попробуйте обосновать свой выбор. 174 ЛАБОРАТОРНАЯ РАБОТА № 6. КОДИРОВАНИЕ РЕЧЕВЫХ ДАННЫХ НА ОСНОВЕ ЛИНЕЙНОГО ПРЕДСКАЗАНИЯ Цель работы: получить навыки применения метода линейного предсказания и расчета коэффициентов фильтра предсказания речевого сигнала в системе MATLAB. 1. Основные теоретические сведения Основной принцип метода линейного предсказания состоит в том, что текущий отсчет речевого сигнала можно аппроксимировать линейной комбинацией предшествующих отсчетов. Коэффициенты предсказания – это весовые коэффициенты, используемые в линейной комбинации. Они определяются однозначно из условия минимизации среднего квадрата разности между отсчетами речевого сигнала и их предсказанными значениями (на конечном интервале). Основные положения метода линейного предсказания хорошо согласуются с моделью речеобразования, где речевой сигнал представляется в виде сигнала на выходе линейной системы с переменными во времени параметрами, возбуждаемой квазипериодическими импульсами (в пределах вокализованного сегмента) или случайным шумом (на невокализованном сегменте). Метод линейного предсказания позволяет точно и надежно оценить параметры этой линейной системы с переменными коэффициентами. Модель имеет следующие параметры: классификатор вокализованных и невокализованных звуков, период основного тона для вокализованных звуков, коэффициент усиления g , коэффициенты {ak } цифрового фильтра. Все эти параметры медленно меняются во времени. Остановимся подробно на задаче определения коэффициентов цифрового фильтра {ak } . Предположим, что отсчеты речевого сигнала s ( n ) связаны с сигна- лами возбуждения u ( n ) разностным уравнением p (8.7) s ( n) = ∑ a k s (n − k ) + g ⋅ u ( n) . k =1 В этом случае передаточная функция линейной системы с входом u ( n ) и выходом s ( n ) имеет вид p ⎛ ⎞ H ( z ) = S ( z ) U ( z ) = g ⎜1 − ∑ a k ⋅ z −k ⎟ , ⎝ k =1 ⎠ где z – формальная переменная; S ( z ) и U ( z ) – Z-преобразования речево- го сигнала s ( n ) и сигнала возбуждения u ( n ) . 175 Линейный предсказатель с коэффициентами {ak } определяется как система, на выходе которой в момент времени n имеем p s ( n) = ∑ αk s (n − k ) . (8.8) k =1 Системная функция предсказателя p-го порядка представляет собой p полином вида P ( z ) = ∑ α k ⋅ z −k . k =1 Погрешность предсказания определяется как p e( n) = s ( n) − ∑ αk s ( n − k ) . k =1 Другими словами, погрешность предсказания представляет собой сигнал на выходе системы с передаточной функцией p A ( z ) = 1 − ∑ α k ⋅ z −k . k =1 Таким образом, если сигнал точно удовлетворяет модели (8.7) и ak = α k , то e ( n ) = g ⋅ u ( n ) . Отсюда следует, что фильтр погрешности пред- сказания A ( z ) – обратный фильтр для системы с передаточной функцией H ( z ) , соответствующей уравнению (8.7), т.е. H ( z ) = g A ( z ) . Основная задача анализа на основе линейного предсказания заключается в определении параметров {ak } по речевому сигналу. При этом предполагается, что полученные параметры являются параметрами системной функции H ( z ) в модели речеобразования. Вследствие изменения свойств речевого сигнала во времени коэффициенты предсказания должны оцениваться на коротких сегментах речи – кадрах. В качестве критерия, по которому производится оптимизация синтеза фильтра A ( z ) , удобно взять минимум суммы квадратов погрешностей линейного предсказания на сегменте (кадре) речевого сигнала. Основные причины для выбора такого критерия следующие: получающиеся уравнения – линейные, они относительно просто решаются и дают хорошие результаты. Пусть ⎡ n , n1 ⎤ – некоторый интервал. Сумма квадратов погрешно⎣ 0 ⎦ стей линейного предсказания определяется следующим образом: n1 E = ∑ e2 ( n ) . n=n 0 176 Параметры a k можно получить, минимизируя E. Подставим (8.8) в выражение для Е и приравняем к нулю производные ∂E ∂ a k , k = 1, 2,…, p . Получаем n1 2 E = ∑ s ( n ) − a1 ⋅ s ( n − 1) − … − a p ⋅ s ( n − p ) = n = n0 ( ) n1 p n1 n = n0 i =1 n = n0 = ∑ s 2 ( n ) − 2 ∑ ai ∑ s ( n ) ⋅ s ( n − i ) + p p n1 + ∑ ∑ ai a j ∑ s ( n − i ) ⋅ s ( n − j ). i =1 j =1 (8.9) n = n0 Дифференцируем (8.9) по ak , k = 1, 2,…, p : n1 ∂E ∂ a k = ∑ s ( n ) ⋅ s ( n − k ) − n = n0 n1 p − ∑ a i ∑ s(n − k ) ⋅ s(n − i) = 0 (8.10) i = 1 n = n0 Заменив k на j , получим систему p линейных уравнений относительно p неизвестных a1, a2 ,..., a p p (8.11) ∑ a i c i j = c 0 j , j = 1, 2,…, p, i =1 n1 c i j = c j i = ∑ s(n − i) ⋅ s(n − j) . (8.12) где n = n0 Данная система называется системой уравнений Юла – Волкера. Решив её, нетрудно оценить и минимальную достижимую погрешность предсказания. Для этого подставим (8.11) в (8.9) p p p E = c 00 − 2 ∑ a i c 0 i + ∑ a i ∑ a j c i j i =1 i =1 j =1 и, используя (8.11), упростим это выражение. В результате получим p E = c 00 − ∑ a i c 0i . i =1 Для определения коэффициентов ak из уравнений Юла – Волкера необходимо знать величины c i j , i = 0,1, …, p, j = 1,2, …, p . Имеется два подхода к вычислению этих величин. Один называется ковариационным методом, второй – автокорреляционным. 177 1. Автокорреляционный метод Для этого метода примем пределы анализа равными (−∞ , + ∞) , интервал анализа (0 , N ) , причем сигнал обнуляется вне интервала анализа, т.е. s ( n ) = 0 при n < 0, n ≥ N . Такие пределы позволяют упростить выражение для c i j , i = 1,2,…, p, j = 0,1,…, p : N −1− i − j N + p −1 ci j = s(n − i) ⋅ s(n − j) = s ( n) ⋅ s ( n + i − j ) . ∑ ∑ n=0 n=0 В этом случае c ij являются функциями величины i − j и с точностью до множителя совпадают с оценками автокорреляционной функции R̂ (τ ) сигнала s ( n ) , вычисленными при τ = i − j , N −1− i − j s (n) ⋅ s ( n + i − j ) . ∑ n=0 Разделив уравнения в системе (8.11) на N, получаем систему уравнений Юла – Волкера для автокорреляционного метода p ∑ a i ⋅ Rˆ ( i − j ) = Rˆ ( j ) , j = 1, 2, …, p . i =1 (8.13) В матричном виде система может быть записана как a × R = b , где a = (a , a ,..., a ), b = Rˆ (1), Rˆ (2), …, Rˆ ( p ) , Rˆ ( i − j ) = c i j N = 1 N 1 2 p ( ) ⎡ Rˆ (0) Rˆ (1) ⎢ Rˆ (0) ⎢ Rˆ (1) R=⎢ … … ⎢ ⎢⎣ Rˆ ( p − 1) Rˆ ( p − 2) Rˆ ( p − 1) ⎤ ⎥ … Rˆ ( p − 2) ⎥ . … … ⎥ ⎥ ˆ R (0) ⎥⎦ … … Матрица R в автокорреляционном методе обладает двумя важными свойствами. Она симметрическая (ее элементы, симметричные относительно главной диагонали, равны) и теплицева (каждая следующая строка получается из предыдущей сдвигом вправо). Структура теплицевой матрицы позволяет решить систему (8.13) особенно просто. Для ее решения по алгоритму Левинсона – Дарбина, описание которого приводится ниже, требуется порядка p 2 операций. Решение произвольной системы из p уравнений с p неизвестными потребовало бы порядка p 3 операций. 178 2. Ковариационный метод В этом методе выбирается n0 = 0, n1 = N − 1 , а сигнал s ( n ) не ограничивается. При этом для величин c i j , i = 1, 2,…, p, j = 0, 1, …, p N −1 c i j = ∑ s(n − i) ⋅ s(n − j) . n=0 Изменив индекс суммирования, это выражение можно представить в виде N − i −1 ci j = ∑ s ( n ) ⋅ s ( n + i − j ) , при i = 1, 2,…, p, j = 0, 1, …, p. (8.14) n = −i Выражение (8.14) похоже на выражение для c i j для автокорреляционного метода, но имеет другие пределы суммирования. В (8.14) используются значения сигнала вне интервала 0 ≤ n ≤ N − 1 . Другими словами, для вычисления c i j в ковариационном методе необходимо знать значения сигнала s ( − p ) , s ( − p + 1) ,…, s ( N − 1) , т.е. сигнал должен быть известен на несколько большем интервале, чем в автокорреляционном методе. Однако, как правило, p N и данное требование не очень существенно. Этот метод приводит не к автокорреляционной, а к взаимной корреляционной функции между двумя очень сходными, но не одинаковыми сегментами речевого сигнала конечной длительности N −1 Rˆ ( i, j ) = c i j N = 1 N ∑ s ( n − i ) ⋅ s ( n − j ) . n=0 Нетрудно увидеть, что Rˆ ( i, j ) = Rˆ ( j , i ) , однако Rˆ ( i, j ) не является функцией от i − j , как это было в автокорреляционном методе. Разделив все уравнения в системе (8.10) на N, получаем систему уравнений Юла – Волкера для ковариационного метода p (8.15) ∑ a i ⋅ Rˆ ( i, j ) = Rˆ ( 0, j ) , j =1, 2, …, p . i =1 В матричном виде система уравнений (8.15) имеет вид a × P = c , где a = a1, a 2, …, a p , c = Rˆ (0,1), Rˆ (0, 2), …, Rˆ (0, p ) , ⎡ Rˆ (1,1) Rˆ (1,2) … Rˆ (1, p ) ⎤ ⎢ ⎥ ˆ ˆ ˆ R R R p … (2,1) (2,2) (2, ) ⎢ ⎥ P=⎢ . … … … … ⎥ ⎢ ⎥ ⎢⎣ Rˆ ( p,1) Rˆ ( p,2) … Rˆ ( p, p ) ⎥⎦ ( ) ( ) 179 В отличие от матрицы R в автокорреляционном методе матрица P будет симметрической, но не теплицевой. Решение такой системы в общем виде требует p 3 операций. Алгоритм решения уравнений линейного предсказания для автокорреляционного метода. Система уравнений Юла – Волкера имеет вид (8.13), матрица коэффициентов R является теплицевой и симметрической. Это позволяет найти решение за p 2 операций с помощью алгоритма Левинсона – Дарбина. Данный алгоритм был предложен Левинсоном в 1948 г. и усовершенствован Дарбиным в 1960 г. Особенность алгоритма – его итеративный характер. В нем последовательно решается система уравнений вида (8.13) порядка l = 1, 2,…, p , причем решение системы порядка l выражается через решение системы порядка l − 1 . Решение системы порядка l будем обозначать через ) ( (l ) (l ) (l ) a (l ) = a1 , a 2 , …, al . На каждом шаге алгоритма вычисляется также ошибка предсказания E l для решения системы l -го порядка и вспомогательный коэффициент k l . Ниже приводится формальное описание алгоритма. Начальные условия: l = 0, E 0 = R ( 0 ) , a (0) = 0 . Итеративная процедура: при l = 1, …, p вычисляются ⎛ l −1 ⎞ l − 1 = ⋅ R l − i − R l ( ) ( ) ⎟⎟ E l − 1 , k l ⎜⎜ ∑ ai ⎝i =1 ⎠ (l ) (l ) (l −1) a l = −k l , a j = alj−1 + k l ⋅ al − j , 1 ≤ j ≤ l − 1 , ( ) E l = E l −1 1 − k l2 . На последнем шаге алгоритма при l = p получается искомое решение ( ) a = a1, a 2, …, a p = a ( p ), E = E p . Пример. Проследим работу алгоритма Левинсона – Дарбина на первых шагах. Шаг 1: k1 = − R(1) / R(0), ( ) (1) a1 = R (1) / R (0), E1 = R 2(0) − R (2)(1) / R (0). 180 Шаг 2: ( ) ( R2(0) − R(2)(1) ) , (2) a1 = ( R (1) R(0) − R (1) R (2) ) ( R 2(0) − R 2(1) ) , E 2 = ( ( R (0) − R(2) ) ( R 2(0) + R (2) R(0) − 2 R 2(1) ) ) ( R 2(0) − R 2(1) ) . k 2 = R 2(1) − R(0) R (2) При синтезе случайного процесса с помощью полученного фильтра необходимо предварительно рассмотреть вопрос об устойчивости. На практике отсутствие устойчивости проявляется в том, что моделирование с построенным фильтром не даст нужного результата, т.е. малым сигналам возбуждения на входе фильтра могут соответствовать большие выходные сигналы. Ниже рассмотрим некоторые вопросы, связанные с устойчивостью авторегрессионного фильтра и порождаемого им процесса. Последовательность { x(n)} = x(1), x(2),…, x(n), называется устойчи- n вой, если X ( z ) = ∑∞ n =1 x (n) z абсолютно сходится внутри единичного круга, т.е. при z < 1. Фильтр H ( z ) называется устойчивым, если все полюсы H ( z ) лежат внутри единичного круга. Из этих определений следует, что если на вход фильтра поступает устойчивая последовательность и фильтр устойчив, то на выходе будет также устойчивая последовательность. Действительно, мы имеем X ( z ) = Y ( z ) H ( z ) < ∞ при всех z < 1 тогда и только тогда, когда Y ( z ) < ∞ и H ( z ) < ∞ при z < 1 . Следовательно, для проверки устойчивости фильтра с передаточной функцией H ( z ) = 1 A( z ) нужно вычислить все корни полинома A( z ) = 1 − a1 z −1 − … − a p z − p и убедиться в том, что они удовлетворяют ус- ловию zi < 1, 1 ≤ i ≤ p (для того чтобы привести A( z ) к полиномиальному виду, можно умножить A( z ) на z p ). Процедура вычисления всех комплексных корней многочлена достаточно трудоемка и на практике применяется редко. Однако если фильтр синтезируется по алгоритму Левинсона – Дарбина, то условием устойчивости будет выполнение на каждом шаге неравенства kl < 1 . Итерационный алгоритм Левинсона – Дарбина реализуется в MATLAB функцией levinson. Функция rlevinson решает обратную задачу – позволяет найти вектор отсчетов корреляционной функции сигнала по заданным коэффициентам линейного предсказания. Функция lpc реализует расчет коэффициентов линейного предсказания автокорреляционным методом и является аналогом функции aryule. Эти две функции различаются лишь MATLAB-кодом, используемым для вычисления оценки корреляционной матрицы. В итоге результаты совпадают с точностью до вычислительных погрешностей. 181 2. Задания и методические указания по выполнению работы 1. С помощью микрофонной гарнитуры введите в компьютер речевой сигнал (фамилию студента). 2. Самостоятельно изучите описание функций levinson, rlevinson и lpc в среде MATLAB с помощью раздела меню Help. 3. Реализуйте с помощью функции levinson алгоритм Левинсона – Дарбина для кадров речевого сигнала размером 180 – 240 отсчетов. 4. С помощью функции lpc рассчитайте коэффициенты линейного предсказания для речевого сигнала. 5. С помощью функции rlevinson найдите вектор отсчетов корреляционной функции речевого сигнала по полученным коэффициентам линейного предсказания. 6. Повторите эксперименты для множества сегментов речевого сигнала. 7. Проанализируйте полученные результаты и представьте их в отчете. 182 Заключение Несмотря на значительный прогресс в области теории и практики цифровой обработки речи и других сигналов усилия, направленные на решение проблем ЦОС, не снижаются, а, напротив, возрастают. Успехи достигнуты благодаря революции в области проектирования микроэлектронных устройств с высочайшим уровнем интеграции. Этот прогресс наглядно демонстрирует, например, мобильная связь, причем значительная доля успеха связана с развитием методов обработки и передачи сигналов. В то же время остается нерешенной главная стратегическая задача в области обработки речевых сигналов – понимание речевого сообщения. Надо учесть, что чисто механическое представление речевых сигналов является односторонним, черно-белым. На его основе может быть решен лишь ограниченный круг простейших задач. Обучение человека речевому общению происходит в течение многих лет. Но ведь человек получает способность к речевым коммуникациям от природы! Речь – это способ передачи мысли. В ней существенную роль играют эмоции, интонация и контекст, а восприятие речи субъектом опирается на его предыдущий опыт. Эти богатейшие составляющие при обработке речевого сигнала в технической системе либо утрачиваются, либо пока не используются. В диалоге речь сопровождается также общением по визуальному каналу. Хотя в области обработки речи уже немало сделано, предстоит сделать намного больше. В связи с перспективами коммерческого применения основные фирмы-разработчики «придерживают» информацию по новейшим исследованиям. Надеемся, что достижения в области распознавания речи в ближайшее время будут множиться и станут доступны в учебной литературе. 183 Библиографический список* 1. Gaurang Kishor Parikh, B.E. The effect of noise on the spectrum of speech: thesis.– Texas Un-ty, 2002. 2. Haykin, S. Adaptive Filter Theory. – 4-th edition. – Prentice Hall, 2002. 3. Picone, J. Fundamentals of speech recognition / Department of Electrical and Computer Engineering, Mississippi State University. – Режим доступа: http://www.isip.msstate.edu/resources/cources/ece_8463. 4. Tokuda, K. Speech coding based on adaptive mel-cepstral analysis : proc. ICASSP'94 / K. Tokuda, H. Matsumura, T. Kobayashi and S. Imai. – 1994. – Режим доступа: http://ktlab.ics.nitech.ac.jp/~tokuda/selected_pub/pdf/conference/tokuda_icassp1994.pdf. 5. Gales, M. The Theory of Segmental Hidden Markov Models. – Cambridge University, 1993. 6. Mouly, M. The GSM System for Mobile Communications / M. Mouly, M.B. Pautet. – 1992. – 702 p. 7. MATLAB 6.5 SP1/7.0 (R14). Пакет программ. 8. Mixed-Signal and DSP design techniques. Analog Devices (Walt Kester) 2000. 9. Proakis, Y.G. Digital Communication. Mc Graw Hill. – 3-rd ed. – New York, 1995. 10. Imai, S. Mel log spectrum approximation (MLSA) filter for speech synthesis : transactions of the IECE of Japan, February 1983 / S. Imai, K. Sumita, and C. Furuichi. 11. Robinson, T. Speech Analysis. Lent Term 1998. – Режим доступа: http://svr-www.eng.cam.ac.uk/~ajr/SpeechAnalysis/SpeechAnalysis.html. 12. Wiener, N. Extrapolation, interpolation and smoothing of stationary time series. – John Wiley, New York, 1949. 13. Сергиенко, А. Б. Алгоритмы адаптивной фильтрации : особенности реализации в MATLAB // EXPonenta Pro. Математика в приложениях. – 2003. – № 1. 14. Новосельский, А. Интернет-публикация. – Режим доступа: http://dox.sbnet.ru:8082/~serge/speech.ru/cplusp/6n96y2a.htm#vv. 15. Шульгин, В. И. Основы теории связи. Ч. 1. Теория и практика кодирования : учеб. пособие. – Харьков, 2005. – 194 с. 16. Введение в цифровую фильтрацию / под ред. Р. Богнера, А. Константинидиса. – М. : Мир, 1976. – 216 с. 17. Веденисов, Д. Синтез речи. – 2004. – Режим доступа: http://www.temator.ru/section/10/1.html. * Приводится в авторской редакции. 184 18. Венцов, А. В. Современные модели восприятия речи : критический обзор / А. В. Венцов, В. Б. Касевич. – СПб : Изд-во Санкт-Петербург. ун-та, 1994. – 316 с. 19. Галунов, В. И. Аналитический обзор по проблеме кодирования речевых сигналов / В. И. Галунов, А. Б. Викторов. – Режим доступа: www.auditech.ru. 20. Гробман, М. З. Выделение скрытых периодичностей и формантный анализ речи. Распознавание образов : теория и приложения / М. З. Гробман, В. И. Тумаркин. – М. : Наука, 1977. 21. Гудонавичюс, Р. В. Распознавание речевых сигналов по их структурным свойствам / Р. В. Гудонавичюс, П. П. Кемешис, А. Б. Читавичюс. – Л. : Энергия, 1977. – 300 с. 22. Давыдов, А. В. Сигналы и линейные системы : Интернетпубликация. – Режим доступа: http://prodav.narod.ru/signals/index.html. 23. Дьяконов, В. П. MATLAB 6.5 SP1/7 +Simulink 5/6. Обработка сигналов и проектирование фильтров. – М. : СОЛОН-пресс, 2005. – 576 с. – ISBN 5-98003-206-1. 24. Дэйвид, Г. Порядковые статистики. – М. : Наука, 1979. – 336 с. 25. Золотухин, И. П. Цифровые звуковые магнитофоны / И. П. Золотухин, А. А. Изюмов, М. М. Райзман. – Томск : Радио и связь, Том. отд., 1990. – 160 с. – (Массовая радиобиблиотека. Вып. 1153). 26. Каппелини, В. Цифровые фильтры и их применение / В. Каппелини, Дж. Константинидис, П. Эмилиани. – М. : Энергоатомиздат, 1983. – 360 с. 27. Кривошеев, В. И. Digital Signal Processing : курс лекций. – ННГУ, 2004. – Режим доступа: www.wl.unn.ru. 28. Рабинер, Л. Р. Скрытые марковские модели и их применение в избранных приложениях при распознавании речи // ТИИЭР. – 1989. – Т. 77. – № 2. 29. Маркел, Дж. Линейное предсказание речи / Дж. Маркел, А. Грей. – М. : Связь, 1980. –308 с. 30. Методы и стандарты кодирования и сжатия речи в цифровой телефонии : Интернет-публикации. – Режим доступа: http://dox.sbnet. ru:8082/~serge/speech.ru/coder/. 31. Михайлов, В. Г. Измерение параметров речи / В. Г. Михайлов, Л. В. Златоустова ; под ред. М. А. Сапожкова. – М : Радио и связь, 1979. – 416 с. 32. Назаров, М. В. Цифровая реализация устройств первичной обработки речевых сигналов с линейным предсказанием / М. В. Назаров, Р. В. Шафер // Тезисы докладов 11-го Всесоюзного семинара АРСО-11. – Ереван, 1980. 185 33. Научно-исследовательская группа «Phrase research group» : Речевые технологии третьего тысячелетия : Интернет-публикация. – Режим доступа: http://phrase.ru/rus/npes.htm. 34. Огородников, А. Н. Материалы VIII Всерос. науч.-практ. конф. «Научное творчество молодежи». – Томск : Изд-во Том. ун-та, 2004. – С. 52 – 53. 35. Пауков, Д. П. Импульсно-кодовая модуляция, использующая закон μ и Α. – ПМИ ДонНТУ, 2002. – Режим доступа: http://www.uran.donetsk.ua/~masters/2003/fvti/paukov/library/zakon2.htm. 36. Попов, В. И. Основы сотовой связи стандарта GSM / В. И. Попов. – М.: Эко-Трендз, 2005. – 296 с. – ISBN 5-88405-068-2. 37. Потапова, Р. К. О типологических особенностях слога. Распознавание образов: теория и приложения / Р. К. Потапова. – М. : Наука, 1977. – 296 с. 38. Продеус, А. Н. Методы обработки акустических сигналов : курс лекций. – Режим доступа: http://aprodeus.narod.ru. 39. Рабинер, Л. Р. Цифровая обработка речевых сигналов : пер. с англ. / Л. Р. Рабинер, Р. В. Шафер ; под ред. М. В. Назарова и Ю. Н. Прохорова. – М. : Радио и связь, 1981. – 496 с. 40. Рабинер, Л. Р. Теория и применение цифровой обработки сигналов / Л. Р. Рабинер, В. Гоулд. – М. : Мир, 1978. – 848 с. 41. Иконин, С. Ю. Система автоматического распознавания речи SPIRIT ASR Engine / С. Ю. Иконин, Д. В. Сарана // Цифровая обработка сигналов. – 2003. – № 3. – Режим доступа: www.spirit.ru и www.spiritdsp.com. 42. Секунов, Н. Ю. Обработка звука на РС / Н. Ю. Секунов. – СПб. : БХВ – Петербург, 2001. – 1248 с. – ISBN 5-94157-037-6. 43. Сергиенко, А. Б. Цифровая обработка сигналов: учеб. для вузов / А. Б. Сергиенко. – СПб. : Питер, 2003. – 604 с. – ISBN 5-318-00666-3. 44. Сорокин, В. Н. Элементы кодовой структуры речи. Распознавание образов: теория и приложения. – М. : Наука, 1977. – с. 42 – 60. 45. Смит, С. В. Научно-техническое руководство по цифровой обработке сигналов / С. В. Смит ; пер. с англ. В. Н. Покровского, В. И. Силантьева. – СПб. : АВТЭКС, 2001. – 630 с. 46. Хайкин, С. Спектральный анализ радиолокационных мешающих отражений методом максимальной энтропии / С. Хайкин, Б. У. Карри, С. Б. Кеслер // ТИИЭР. – №9. – 1982. – с. 51 – 62. 47. Хемминг, Р. В. Цифровые фильтры / Р. В. Хемминг. – М.: Недра, 1987. – 224 с. 48. Громаков, Ю. А. Сотовые системы подвижной радиосвязи. Технологии электронных коммуникаций / Ю. А. Громаков. – М. : Эко-Трендз, 1994. – 302 с. 186 Оглавление Введение…………………………………………………………………... Глава 1. Речевой сигнал………………………........................................ 1.1. Речь и речевой сигнал……………………….................................. 1.2. Цифровое представление речевых сигналов (дискретизация и квантование по уровню) ………………………........................... 1.2.1. Цифровое представление……………………….................... 1.2.2. Дискретизация ………………………..................................... 1.2.3. Квантование………………………......................................... 1.3. Технические и программные средства формирования аудиоданных ………………………................................................ 1.4. Запись и считывание данных из речевого сигнала в MATLAB ………………………................................................... 1.5. Параметры и информативные признаки речевого сигнала……. 1.6. Особенности преобразования речевых сигналов в стандарте GSM………………………......................................... Контрольные вопросы ………………………............................................ Глава 2. Методы анализа речевых сигналов ………………………... 2.1. Преобразование Фурье………………………................................ 2.1.1. Ряд Фурье……………………….............................................. 2.1.2. Преобразование Фурье непериодических сигналов………. 2.1.3. Связь между коэффициентами Фурье и спектром………... 2.1.4. Дискретное преобразование Фурье ………………………... 2.1.5. ДПФ гармонического сигнала ………………………........... 2.1.6. Быстрое преобразование Фурье ………………………....... 2.1.7. Вычисление спектрограммы ……………………….............. 2.2. Корреляционная обработка сигналов. Процедура и примеры применения ………………………................................ 2.2.1. Выявление периодического колебания на фоне шума …... 2.2.2. Оценивание длины периода основного тона речевого сигнала. Экспериментальное измерение в системе MATLAB ………………………............................ 2.2.3. Преобразование Фурье функции корреляции как способ выявления периодического колебания ……………. Контрольные вопросы ………………………............................................ 3 5 5 9 9 11 18 20 21 24 27 30 32 32 32 34 35 36 37 41 47 50 53 57 62 64 Глава 3. Цифровая фильтрация речевого сигнала ………………… 66 3.1. Линейная цифровая фильтрация ………………………............ 66 3.2. Нелинейная цифровая фильтрация ………………………......... 68 187 3.3. Нерекурсивные цифровые фильтры (НЦФ) ………………….. 3.4. Рекурсивные цифровые фильтры (РЦФ, или IIR) ……………. 3.5. Адаптивная фильтрация речевых сигналов …………………... 3.6. Демонстрационный пример (MATLAB 7) фильтрации по критерию наименьшей среднеквадратичной ошибки (LMS – least mean sguare error) ………………………................ 3.7. Метод наименьших квадратов и оптимальный фильтр Винера ………………………........................................................ 3.8. Рекурсивный метод наименьших квадратов (RLS) ………….. Контрольные вопросы ………………………............................................ Глава 4. Методы обработки речевых сигналов, используемые в системах распознавания речи ………………………........................ 4.1. Скрытые марковские модели ……………………….................... 4.1.1. Математическая модель лево-правых СММ ……………… 4.1.2. Алгоритм прямого – обратного хода (решение проблемы 1) ………………………........................ 4.1.3. Алгоритм Витерби (решение проблемы 2) ……………….. 4.1.4. Алгоритм Баума – Велча (решение проблемы 3) ………… 4.2. Линейное предсказание ………………………............................ Контрольные вопросы ………………………........................................... 69 71 73 78 81 82 82 83 83 83 86 87 89 91 94 Глава 5. Анализ речи ……………………….......................................... 5.1. Управление окнами ……………………….................................... 5.2. Кратковременный анализ Фурье ………………………............... 5.2.1. Кратковременное преобразование Фурье ………………… 5.2.2. Практическое применение кратковременного преобразования Фурье ………………………....................... 5.3. Кепстральный анализ ………………………................................. 5.4. Z-преобразование ………………………........................................ 5.5. Анализ с использованием линейного предсказания …………… 5.6. Применение формантного анализа ………………………............ Контрольные вопросы ………………………............................................ 95 95 100 100 Глава 6. Методы синтеза речи ………………………........................... 6.1. Метод цифрового кодирования речи ………………………........ 6.2. Метод фонемного синтеза ……………………….......................... 6.3. Метод формантного синтеза ………………………...................... 6.4. Вокодеры ………………………...................................................... Контрольные вопросы ………………………............................................ 116 117 118 119 120 123 188 101 104 106 107 112 115 Глава 7. Методы кодирования речевых сигналов ………………… 7.1. Кодирование формы волны речевого сигнала …………………. 7.2. Параметрическое кодирование ……………………….................. 7.3. Кодирование фонемной информации ………………………...... 7.4. Кодирование слов и фраз ……………………….......................... 7.5. Импульсно-кодовая модуляция ………………………................. 7.6. Дифференциальная импульсно-кодовая модуляция (ДИКМ) на основе линейного предсказания ………………………............ 7.6.1. Решетчатый фильтр сигнала ошибки предсказания ……… 7.6.2. Реализация ДИКМ ……………………….............................. 7.7. Способы кодирования речи на основе анализа временных параметров ………………………................................ 7.7.1. Измерение энергии ………………………............................. 7.7.2. Измерение числа переходов через нуль …………………... 7.7.3. Кратковременный автокорреляционный анализ ………… 7.8. Кодирование речи на основании адаптивного mel-кепстрального анализа ………………………......................... 7.8.1. Адаптивный mel-кепстральный анализ …………………… 7.8.2. Структура кодера ………………………............................... 7.9. Кодирование речи в стандарте GSM ………………………......... Контрольные вопросы ………………………........................................... 124 124 125 126 126 126 Глава 8. Лабораторный практикум……………………….................... Лабораторная работа № 1. Дискретные сигналы и их описание во временной области……………………….............................................. Лабораторная работа № 2. Работа с речевыми данными в среде MATLAB………………………..................................................... Лабораторная работа № 3. Корреляционная обработка сигналов…… Лабораторная работа № 4. Спектральная обработка сигналов………. Лабораторная работа № 5. Расчет цифровых фильтров в среде MATLAB………………………...………………………............... Лабораторная работа № 6. Кодирование речевых данных на основе линейного предсказания………………………...………………………... 156 129 135 138 140 141 142 143 145 145 146 149 155 156 161 161 164 168 175 Заключение………………………...………………………....................... 183 Библиографический список………………………................................. 184 189 Учебное издание АХМАД Хассан Мухаммад ЖИРКОВ Владислав Федорович ВВЕДЕНИЕ В ЦИФРОВУЮ ОБРАБОТКУ РЕЧЕВЫХ СИГНАЛОВ Учебное пособие Подписано в печать 25.12.07. Формат 60x84/16. Усл. печ. л. 11,16. Тираж 100 экз. Заказ Издательство Владимирского государственного университета. 600000, Владимир, ул. Горького, 87. 190