Оглавление.

Введение. Общие вопросы компьютерного распознавания и порождения речи.

1. Программирование звука в Windows.

2. Основы цифровой обработки звуковых сигналов.

3. Определение параметров речевого сигнала.

4. Алгоритмы распознавания.

5. Использование Microsoft Speech API 5.1 для синтеза и распознавания речи.

6. Использование Microsoft Speech API 4.0 для синтеза речи.

Ссылки.

Об авторе.

Компьютерное распознавание и порождение речи

Глава 1. Программирование звука в Windows.

Назад В начало главы Дальше

1.2.1. Запись звука.

1). Если нас не устраивает работа со стандартным устройством ввода, определенным в операционной системе, мы можем вызвать функцию waveInGetNumDevs, чтобы получить число устройств ввода, определенных в системе, а затем запросить параметры и имена этих устройств при помощи waveInGetDevCaps. Естественно, если мы планируем работать со стандартным устройством ввода, то этот шаг для нас лишний.

2) Открываем устройство ввода функцией waveInOpen, в параметрах которой указываем формат звукового потока и способ уведомления о выполнении запрошенных операций.

3) Создаем в программе один или несколько буферов с заголовками, заполняем заголовки буферов по установленным правилам.

4) Подготавливаем один или несколько буферов к передаче драйверу посредством функции waveInPrepareHeader.

5) Передаем один или несколько буферов драйверу звуковой карты при помощи функции waveInAddBuffer.

6) Запускаем запись потока функцией waveInStart. После этого драйвер запустит АЦП и начнет заполнение переданных буферов поступающими отсчетами.

7) Если буфер заполнен, программа может обработать данные. Для того, чтобы отследить момент заполнения буфера, можно либо использовать таймер и периодически проверять состояние поля dwBytesRecorded заголовка буфера, куда драйвер заносит число записанных байтов, либо - и это лучший вариант - обработать сообщение MM_WIM_DATA, посылаемое драйвером в момент заполнения буфера окну, приложению или потоку: конкретный вариант определяется еще на шаге 2) параметрами функции waveInOpen.

8)Снова переадаем буфер функцией waveInAddBuffer драйверу для записи и по заполнении буфера переходим к пункту 7).

Движение потока приостанавливается (останавливается) функцией waveInStop и возобновляется (начинается) функцией waveInStart.

После окончания записи необходимо освободить буфер (буферы) функцией waveInUnprepareHeader и закрыть устройство функцией waveInClose.


Распознавание речи. Обработка текстов на естественном языке.
Hosted by uCoz