- •Министерство образования и науки российской федерации
- •Оглавление
- •Список рисунков
- •Введение
- •Основы работы со средой математического моделирования МаtLab
- •История создания и развития системы MatLab
- •Интерфейс пользователя
- •Типы данных в системе MatLab
- •Переменные в системе MatLab
- •Арифметические и логические операции в системе MatLab
- •Массивы и матрицы в системе MatLab
- •Использование знака «:» и множественной индексации в системе MatLab
- •Операции над матрицами в системе MatLab
- •Встроенные функции в системе MatLab
- •Графические возможности системы MatLab
- •Изменение свойств линий и оформление графиков
- •Графики функций двух переменных
- •Вывод нескольких графиков на одни оси
- •Вывод нескольких графиков в одном графическом окне
- •Работа со звуковыми файлами в системе MatLab
- •Считывание данных из wav-файлов
- •Запись данных в wav-файл
- •Воспроизведение звуковых сигналов
- •Запись звуковых сигналов
- •Лабораторная работа №1. Исследование внутренней структуры речевого сигнала
- •Методические указания к лабораторной работе
- •Исследование структуры и временных характеристик речевых сигналов
- •Ручная сегментация исследуемой фонограммы
- •Определение фонетического состава сегментов исследуемого слова
- •Лабораторная работа №2. Исследование спектральных свойств речевого сигнала
- •Методические указания к лабораторной работе
- •Комментарии по оформлению отчета к лабораторной работе
- •Программа анализа спектров фонограмм «Спектр» (версия 4)
- •Назначение программы
- •Функциональные возможности программы
- •Лабораторная работа №3. Исследование корреляционных свойств речевого сигнала
- •Методические указания к лабораторной работе
- •Комментарии к оформлению отчета по лабораторной работе
- •Программа анализа корреляционных функций «Коррелограмма»
- •Назначение программы
- •Предварительный этап работы с фонограммой
- •Порядок работы в программе «Коррелограмма»
- •Дополнительные возможности по работе с программой
- •Лабораторная работа №4. Исследование vad-алгоритма
- •Методические указания к лабораторной работе
- •Комментарии по оформлению отчета к лабораторной работе
- •Исследование алгоритма vad в программе «Коррелограмма»
- •Лабораторная работа №5. Исследование методов оценки основного тона речи
- •Методические указания к лабораторной работе
- •Лабораторная работа №6. Моделирование алгоритмов обработки речи
- •Методические указания к лабораторной работе
- •Список индивидуальных заданий
- •Вопросы для самоподготовки
- •Лабораторная работа №1
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6 (Индивидуальные задания)
- •Список литературы
- •Приложение аСписок литературы и web-ресурсы по «Речевым технологиям» и среде математического моделирования «MatLab»
- •Список литературы по «Речевым технологиям»
- •Отечественная литература
- •Общетеоретические вопросы
- •Прикладная фонетика
- •Синтез речи
- •Психоакустика и физиология речи
- •Цифровая связь (телефония)
- •Зарубежная литература
- •Web – ресурсы
- •Список литературы по среде математического моделирования «MatLab»
- •Приложение б Современные направления научно-исследовательских работ кафедры «Бортовых радиоэлектронных систем в области разработки систем обработки речи
- •Основные области применения разрабатываемых алгоритмов
- •Многоуровневая временная сегментация речевых сигналов
- •Модификация фонограмм
Вывод нескольких графиков на одни оси
plot(x, f)
hold on
plot(x, g)

Рис.1.14. Вывод графиков функции f(x) и g(x) на одни оси с помощью команды hold
Вывод нескольких графиков в одном графическом окне
Функция subplot(i,j,n) позволяет разбить графическое окно на несколько подграфиков со своими осями. Здесьiиj– число подграфиков по вертикали и горизонтали, аn– номер подграфика, который надо сделать текущим.
[X, Y] = meshgrid(-1:0.05:1, 0:0.05:1);
Z = 4*sin(2*pi*X).*cos(1.5*pi*Y).*(1-X.^2).*Y.*(1-Y);
subplot(3, 2, 1)
mesh(X, Y, Z)
title('mesh')
subplot(3, 2, 2)
surf(X, Y, Z)
title('surf')
subplot(3, 2, 3)
meshc(X, Y, Z)
title('meshc')
subplot(3, 2, 4)
surfc(X, Y, Z)
title('surfc')
subplot(3, 2, 5)
contour3(X, Y, Z)
title('contour3')
subplot(3, 2, 6)
surfl(X, Y, Z)
shading interp
title('surfl')
colormap(gray)

Рис.1.15. Вывод нескольких графиков в одном окне с помощью команды subplot
Работа со звуковыми файлами в системе MatLab
Считывание данных из wav-файлов
Считывание данных из wav-файлов осуществляется с помощью функции:
y=wavread(‘filename.wav’);
% «;» - подавляет вывод отсчетов на экран !
% filename – имя файла
% расширение wav указывать не обязательно
Размерность массива y зависит от количества записанных каналов в wav-файле (в простейшем случае, если wav-файл содержит монозапись, то переменная y будет вектором).
В системе MatLab при считывании данных из wav-файла значения отсчетов не зависимо от количества бит на отсчет представляются в диапазоне от -1 до 1 (рис.1.16).

Рис.1.16. Диапазон представлений отсчетов в системе MatLab при считывании из wav-файла
Функция wavread позволяет также считать из wav-файла дополнительную служебную информацию:
[y, Fs] =wavread(‘filename’); % получение значения частоты дискретизации Fs
[y, Fs, bits] =wavread(‘filename’); % получение значения бит на отсчет
[y, Fs, bits] =wavread(‘filename’, 1); % считывание частоты дискретизации, без считывания звуковых данных из файла
wavesize =wavread(‘filename’, ‘size’); % получение размера файла и числа каналов
В случае необходимости считать частично (фрагментарно) данные из wav-файле можно воспользоваться следующими возможностями функции wav-read:
y =wavread(‘filename’, N); % частичное считывание данных из файла, начиная с первого отсчета
y =wavread(‘filename’, [n1 n2]); % считывание фрагмента из файла
Пример считывания данных из wav-файла с их последующим графическим отображением (рис.1.17):
y=wavread('G:\SPEAK_TEHNOLOGY\Wav-фрагменты\Izgorod_22_UM.wav');
plot(y)

Рис.1.17. Фонограмма слова «Изгородь», считанная из wav-файла
При необходимости в системе MatLab имеется возможность отображать временные сегменты по частям с помощью функции strips (рис. 1.18):
strips(y, 5000) % Функция отображения фонограммы по частям
Запись данных в wav-файл
Запись данных в wav-файл осуществляется в системе MatLab с помощью функции wavwrite:
wavwrite(y, Fs, N, ‘filename’);
где y - записываемые данные (вектор - моно; 2-хстолбцовая матрица - стерео), Fs – частота дискретизации, N – число бит на отсчет (8 или 16), filename – имя файла,
(Примечание: по умолчанию запись производится со следующими параметрами: N=15 и Fs =8000)
Диапазон записываемых данных должен быть вещественным и лежать на интервале: -1...1.

Рис.1.18. Отображение фонограмма с помощью функции strips
