Главная > Лабораторная работа


Практическая часть

  1. Microsoft SAPI™ SDK

В действительности понятие речевой технологии охватывает две технологии: синтезаторы и устройства распознавания (см. рис. 6.1). Речевой синтезатор в качестве входных данных использует текст, а на выходе воспроизводит звуковой поток. Речевой синтез иногда называю text-to-speech или TTS. С другой стороны, распознаватель речи выполняет противоположную операцию. Он получает на вход звуковой поток и переводит его в текстовое представление.

Рисунок 6.1. Две технологии: синтезаторы и устройства распознавания

Распознавание речи, по своей сути, значительно сложнее, чем синтез речи. Однако этот процесс можно представить в виде взаимодействия начального и конечного модулей. Начальный модуль обрабатывает звуковой поток, разбивая его на фрагменты, которые с определенной вероятностью являются речью, и преобразует их в ряд числовых значений, которые характеризуют вокальные звуки в сигнале. Конечный модуль – это специализированный механизм поиска, который анализирует результат работы начального модуля и сверяется с тремя базами данных: акустической моделью, словарем и языковой моделью. Акустическая модель представляет собой хранилище звуков языка, она может дополняться (обучаться) для распознавания по характеристикам речевых образцов конкретного пользователя и акустических сред. Словарь содержит большое количество слов языка, наряду с информацией относительно того, как произносится каждое слово. Языковая модель содержит правила, по которым строится речь в языке.

Невозможно точно определить, как звучит речь. Человеческая речь редко подчиняется строгим и формальным правилам грамматики, которые могут быть легко формализованы. Необходимым фактором в создании хороших моделей является создание баз данных очень большого размера. Не менее важным фактором являются методы, используемые для анализа данных при создании актуальных моделей.

Конечно, ни одно слово не может быть произнесено одинаково два раза, поэтому распознаватель никогда не обнаружит точного соответствия. Для любого фрагмента звука существует масса вариантов слов, которые диктор теоретически мог произнести. Качество устройства распознавания определяется тем, насколько хорошо оно осуществляет поиск схожих произношений и насколько хорошо оно отбрасывает непохожие. Точность распознавания зависит от наличия хороших языковых и акустических моделей, а также хороших алгоритмов обработки звука для поиска внутри моделей. Хорошие модели и алгоритмы уменьшают количество ошибок и увеличивают скорость получения результата. Разумеется, эту технологию сложно понять.

В то время как встроенная языковая модель распознавателя предназначена для представления встроенного языкового домена (например, повседневный разговорный английский язык), любое другое приложение будет зачастую иметь свои специфические требования к языковой модели. Некоторым приложениям может вообще требоваться только определенное произношение, которое имеет свой смысл для данного приложения. Следовательно, вместо того, что бы использовать универсальную языковую модель, приложение должно использовать грамматику, которое ограничивает распознаватель пониманием только тех фраз, на которые непосредственно настроено это приложение. Такой подход имеет ряд преимуществ: увеличение точности распознавания, все результаты распознавания являются значимыми, возможность определить семантический смысл фразы. Рисунок 6.2 показывает пример того, как эти преимущества проявляются в реальной системе.

Рисунок 6.2. Использование распознавания речи для ввода данных

Microsoft SAPI™ - это программный продукт, созданный фирмой Microsoft специально для работы с речью. SAPI - это сокращение английского словосочетания speech application programming interface, которое подразумевает, что указанный программный продукт предоставляет интерфейсные функции (в данном случае для речевого ввода и вывода) другим приложениям. Следуя своим правилам Microsoft, оформила SAPI в виде набора COM интерфейсов. Однако наличие на компьютере одного только Microsoft SAPI™ (в операционную систему Microsoft Windows XP этот компонент входит как элемент операционной системы) является необходимым, но недостаточным условием того, чтобы компьютер начал синтезировать или распознавать речь.

Что же еще необходимо для этого? Важным, если не сказать фундаментальным, элементом речевой системы являются так называемые речевые «движки» (speech engine), которые и отвечают за то, насколько естественно будет звучать речь или насколько правильно будут распознаваться слова при диктовке.

Для того чтобы просмотреть, какие движки установлены на компьютере и какие языки они поддерживают, в Microsoft SAPI 5 нужно обратиться к Панели управления (элемент «Речь» или «Speech»).

«Движки», по своему назначению, подразделяются на две большие группы:

  • для синтеза речи по тексту (Text-To-Speech или TTS Engine);

  • для распознавания речи (Speech Recognition).

В свою очередь «движки» для распознавания речи подразделяются на:

  • для распознавания устных команд (Speech Recognition или SR Engine for PC command&control applications);

  • для диктовки текста (Speesh Recognition или SR Engine for Dictation).

Microsoft бесплатно предоставляет разработчикам «движков» свой программный продукт Microsoft SAPI™ и SAPI SDK, который представляет собой набор средств, описаний и примеров, необходимых разработчику для применения речевых технологий в своих приложениях, работающих в среде Microsoft Windows™.

Ознакомиться и получить эти программные продукты можно на сайте Microsoft. На сегодняшний день последней версией SAPI SDK является версия 5.1 (до нее были 2.0, 3.0, 4.0 и 5.0). Для версии 4.0 существуют несколько русскоязычных «движков» синтеза речи.

Как видно, Microsoft SAPI прошел уже немалый путь в своем развитии, что обусловило не только интерес сторонних разработчиков к этому программному продукту, но и способствовало появлению множества «движков», поддерживающих различные языки, и многочисленных программ, использующих речевой интерфейс для ввода и вывода информации. Среди этих программ есть и такие, которые ориентированы на нужды незрячих и слабовидящих. Следует заметить, что пользующаяся особой популярностью программа Jaws for Windows™ не нуждается в Microsoft SAPI, но может взаимодействовать с ";движками"; установленными в нем.

Что же позволяет делать SAPI SDK и кому он может быть полезен? В первую очередь разработчикам все тех же ";движков";, так как снабжает их необходимым инструментарием, позволяющим не ломать голову над совместимостью программ, а заниматься лишь улучшением качества синтеза и распознавания речи. Во-вторых, разработчикам приложений, которые используют речь, как средство общения с пользователем, так как в этом случае разработчик может не задумываться о том, как реализовать ввод и вывод речи на низком уровне (ибо это уже решено в «движках»), а целиком заняться обработкой полученных речевых данных, преобразованных в текстовый формат, или формированием текстовых сообщений, которые будут преобразованы в речь средствами SAPI. В версии SAPI 5.1 декларируется поддержка таких языков программирования, как Visual C++, Visual Basic, Microsoft C#, JScript, но поскольку SAPI реализован на базе технологии COM, то любая среда программирования, поддерживающая работу с OLE и COM приложениями, может получить доступ к Microsoft SAPI.

Далее рассмотрим непосредственно интерфейсы распознавания Microsoft SAPI.

ISpRecoContext является главным COM интерфейсом для распознавания речи. Так же, как ISpVoice, этот интерфейс использует ISpEventSource, чтобы уведомить приложение о всех событиях, происходящих в процессе распознавания речи.

Приложение может выбрать один из двух типов «движков» распознавания речи (ISpRecognizer).

Общий ресурс распознавания речи, который может быть поделен между несколькими приложениями и который рекомендуется использовать в большинстве случаев. Чтобы создать ISpRecoContext с общим ресурсом ISpRecognizer, приложению достаточно вызвать CoCreateInstance с указанием CLSID_SpSharedRecoContext. В этом случае SAPI установит параметры звукового ввода, согласно установкам по умолчанию.

Для больших серверных приложений, которые используют все ресурсы системы, не разделяя их ни с кем и для которых производительность является наиболее важным показателем, должен быть создан ISPRECOCONTEXT с InProc ISpRecognizer. Приложение должно вызвать CoCreateInstance с CLSID_SpInprocRecoInstance, чтобы создать его собственный InProc ISpRecognizer. Тогда приложение должно обратиться к ISpRecognizer:: SetInput, чтобы задать параметры звукового ввода. Наконец, приложение может вызвать ISpRecognizer:: CreateRecoContext и получить ISPRECOCONTEXT.

На следующем шаге приложение должно выбрать те события, в уведомлении о которых оно заинтересовано. Как ISpRecognizer, так и ISpEventSource, Которым в свою очередь является ISpNotifySource, приложение может вызвать один из методов ISpNotifySource для его ISpRecoContext, чтобы указать, те события, о которых ISpRecoContext должен сообщить. Для этого нужно вызвать ISpEventSource:: SetInterest, чтобы указать события, о которых надо уведомлять. Наиболее важным является SPEI_RECOGNITION, которое указывает, что ISpRecognizer распознал фрагмент речи для этого ISpRecoContext.

Информацию об остальных событиях, возникающих при распознавании речи, можно найти в описании структуры SPEVENTENUM в Microsoft SAPI SDK.

Наконец, приложение должно создать, загрузить и активировать ISpRecoGrammar, который указывает тип распознавания речи, т.е. диктовку или голосовое управление.

Сначала приложение создает ISpRecoGrammar, используя ISpRecoContext::CreateGrammar. Затем приложение загружает соответствующую грамматику, вызывая ISpRecoGrammar::LoadDictation Для диктовки или один из методов ISpRecoGrammar::LoadCmdxxx для голосового управления.

Теперь, чтобы активировать эти грамматики и приступить к распознаванию речи, приложение вызывает ISpRecoGrammar:: SetDictationState для диктовки или ISpRecoGrammar:: SetRuleState Или ISpRecoGrammar:: SetRuleIdState для голосового управления.

Когда распознавание речи уведомляет приложение о событии, то параметр lParam в структуре SPEVENT содержит ISpRecoResult, с помощью которого приложение может определить, для какого ISpRecoGrammar из какого ISpRecoContext было произведено распознавание. Это необходимо потому, что любой ISpRecognizer, общий или InProc, может быть связанным с несколькими ISpRecoContextsс, каждый из которых может уведомлять о своих событиях ISpRecoContext может иметь несколько ISpRecoGrammars, чтобы распознавать различные виды речевого ввода.

  1. Выполнение лабораторной работы

В данной лабораторной работе изучается использование SAPI для построения речевого интерфейса на примере приложения Speech Interface, выполняющего некоторые функции гипотетического речевого интерфейса.

    1. Приложение Speech Interface

Приложение Speech Interface (SI) является простым оконным приложением Windows и реализует выполнение 3-х команд: запуск/завершение приложения Блокнот и выключение компьютера. В процессе работы SI ждёт команды пользователя, а затем выполняет её, если распознаватель определил искомую фразу, в противном случае в окно выводится сообщение о том, что система не смогла распознать произнесённую команду.

Все используемые грамматики хранятся в файле speech_interface.xml со следующей структурой:

Листинг 7.1. Структура файла грамматики

<Идентификаторы правил>

TOPLEVEL=";ACTIVE";>

Фраза1

TOPLEVEL=";ACTIVE";>

Фраза2

...

TOPLEVEL=";ACTIVE";>

ФразаN

Как видно из листинга, для определения грамматики SI в файле используются теги DEFINE и RULE. В DEFINE перечисляются идентификаторы (законченных команд или частей команд), используемых для описания грамматики. При помощи тега P в блоке RULE определяется состав правила (команды) в той форме, в которой её произносит пользователь. Атрибут TOPLEVEL со значением ACTIVE говорит о том, что данное правило – правило верхнего уровня (что такое правило верхнего уровня?) и SAPI будет сообщать о возникновении события распознавания, если пользователь произнесёт соответствующую команду. В приложении SI все правила являются правилами верхнего уровня.

    1. Структура приложения Speech Interface

Инициализация

Поскольку SAPI реализован через механизм COM, вначале необходимо выполнить соответствующую инициализацию COM.

Листинг 7.2. Инициализация COM

if ( SUCCEEDED( CoInitialize( NULL ) ) )

{

//Инициализация COM прошла успешно

CoUninitialize(); //Освобождаем ресурсы

}

Далее необходимо создать объект распознавания, с помощью которого осуществляется доступ к распознавателю.

Листинг 7.3. Создание движка распознавания

CComPtr g_cpEngine;

// создаём движок распознавания

hr=g_cpEngine.CoCreateInstance(CLSID_SpSharedRecognizer);

if ( FAILED( hr ) ) // Неудачное создание

Константа CLSID_SpSharedRecognizer задаёт разделяемый режим работы, при котором к распознавателю могут задействовать несколько приложений. Альтернатива данному режиму – CLSID_SpSharedRecognizer – режим монопольного использования распознавателя.

Затем необходимо создать контекст распознавания.

Контекст – часть словаря команд, используемая в определённой части приложения (окне, меню, диалоге). В приложении SI используется единственный контекст.

Листинг 7.4. Создание контекста распознавания

CComPtr g_cpRecoCtxt;

// Создаём контекст распознавания

hr = g_cpEngine->CreateRecoContext(&g_cpRecoCtxt );

if ( FAILED( hr ) ) // Неудачное создание

Далее необходимо создать и загрузить грамматику приложения.

Листинг 7.5. Создание м загрузка грамматики

//Создаём грамматику
hr=g_cpRecoCtxt->CreateGrammar(GRAMMARID1, &g_cpCmdGrammar);
if ( FAILED( hr ) ) //Неудачное создание
//Загружаем правила
hr = g_cpCmdGrammar->LoadCmdFromResource(
NULL,
MAKEINTRESOURCEW(IDR_CMD_CFG),
L";SRGRAMMAR";,
MAKELANGID( LANG_NEUTRAL, SUBLANG_NEUTRAL), TRUE);

if ( FAILED( hr ) ) //Неудачная загрузка

Когда происходит загрузка правил грамматики в контекст распознавания, SAPI компилирует XML описание правил в двоичный формат (speech_interface.cfg) и использует его во время работы.

Настройка событий

SAPI уведомляет приложение о возникновении определённых событий, таких как начало распознавания, конец распознавания, совпадение правила и пр. Для того, чтобы приложение могло реагировать на события, необходимо ассоциировать их с соответствующими процедурами. В SAPI предусмотрено несколько механизмов обработки событий, которые можно разделить на 2 группы: вызов подпрограммы и обработка сообщения Windows. В приложении SI используется последний способ.

Листинг 7.5. Установка сообщения

//Устанавливаем сообщение для события SAPI

hr = g_cpRecoCtxt->SetNotifyWindowMessage( hWnd, WM_RECOEVENT, 0, 0 );

if ( FAILED( hr ) ) //Неудачная установка

Из всех событий SAPI можно выбрать лишь некоторые определённые путём задания т.н. «интересов». В приложении SI используются 2 события: соответствие правилу и ошибка распознавания.

Листинг 7.6. Выбор интересов

//Задаём интересы

hr =g_cpRecoCtxt->SetInterest( SPFEI(SPEI_RECOGNITION)|SPFEI(SPEI_FALSE_RECOGNITION), SPFEI(SPEI_RECOGNITION)|SPFEI(SPEI_FALSE_RECOGNITION));

if ( FAILED( hr ) ) //Неудачный выбор

Второй параметр функции SetInterest указывает, какие события необходимо помещать в очередь событий. Очередь событий может понадобиться, если приложение не сможет успевать обрабатывать поступающие от распознавателя события.

После задания сообщения и интересов необходимо определить обработчик сообщения WM_RECOEVENT.

Листинг 7.7. Обработка событий

case WM_RECOEVENT:

ProcessRecoEvent( hWnd );

break;

...

void ProcessRecoEvent( HWND hWnd )

{

// Класс событий

CSpEvent event;

// Обрабатываем все события в очереди

while (event.GetFrom(g_cpRecoCtxt) == S_OK)

{

// Смотрим только интересующие нас события

switch (event.eEventId)

{

case SPEI_RECOGNITION:

ExecuteCommand(event.RecoResult(), hWnd);

break;

case SPEI_FALSE_RECOGNITION:

status=ST_ERROR;

InvalidateRect(hWnd,NULL,TRUE);

break;

}

}

}

Для управления вывода программы используется переменная status, определяющая начало работы, успешное или ошибочное распознавание.

В обработчике сообщения определяется только факт распознавания (или ошибки распознавания), а название команды определяет подпрограмма ExecuteCommand.

Листинг 7.8. Определение команды и предварительная обработка

void ExecuteCommand(ISpPhrase *pPhrase, HWND hWnd)

{

SPPHRASE *pElements;

//Получаем элементы фразы распознанной команды

if (SUCCEEDED(pPhrase->GetPhrase(&pElements)))

{

switch ( pElements->Rule.ulId )

{

case VID_EditFile:

{

strcpy(szLastRecogn,";Edit File";);

status=ST_RECOGNIZED;

InvalidateRect(hWnd,NULL,TRUE);

PostMessage( hWnd, WM_EDITFILE, NULL, NULL );

break;

}

case VID_ShutdownComputer:

{

strcpy(szLastRecogn,";Shutdown Computer";);

status=ST_RECOGNIZED;

InvalidateRect(hWnd,NULL,TRUE);

PostMessage( hWnd, WM_SHUTDOWNCOMPUTER, NULL, NULL );

break;

}

case VID_Close:

{

strcpy(szLastRecogn,";Close";);

status=ST_RECOGNIZED;

InvalidateRect(hWnd,NULL,TRUE);

PostMessage( hWnd, WM_MYCLOSE, NULL, NULL );

break;

}

break;

}

::CoTaskMemFree(pElements); // Освобождаем ресурсы

}

}

Как видно из листинга, при получении команды, в окно приложения выводится соответствующее сообщение, а затем окну приложения отправляется соответствующее сообщение, обработчик которого выполняет непосредственную обработку команды.

    1. Выполнение

Для выполнения лабораторной работы необходимо выполнить следующие шаги.

Составление правил грамматики (файл speech_interface.xml)

  1. Добавить в раздел DEFINE следующие идентификаторы:

  1. Добавить в раздел GRAMMAR 3 правила для команд:

Edit File

Close

Shutdown Computer

Реализация обработчиков команд

Добавить в подпрограмму PaneProc файла speech_interface.cpp следующие обработчики:

  1. для сообщения WM_EDITFILE:

Листинг 7.9. Обработчик команды «Edit File»

STARTUPINFO si;

GetStartupInfo(&si);

PROCESS_INFORMATION pi;

if(!CreateProcess(NOTEPAD_PATH,NOTEPAD_PATH,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi))

MessageBox(hWnd,";CreateProcess failed";,";Error";,MB_OK);

  1. для сообщения WM_SHUTDOWNCOMPUTER:

Листинг 7.10. Обработчик команды «Shutdown Computer»

HANDLE hToken;

TOKEN_PRIVILEGES tkp;

if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))

return 0;

LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1; // one privilege to set

tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

if (GetLastError() != ERROR_SUCCESS)

return 0;

if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))

return 0;

  1. для сообщения WM_MYCLOSE:

Листинг 7.11. Обработчик команды «Close»

hNotepad=search_window(NULL,NOTEPAD_CLASSNAME);

SendMessage(hNotepad,WM_CLOSE,0,0);

Далее необходимо добавить следующие макроопределения в файл speech_interface.h:

#define NOTEPAD_CLASSNAME

#define NOTEPAD_PATH

где - имя класса окна Блокнота, а - путь к программе Блокнот. Первый параметр можно определить при помощи утилиты Spy++.

Сборка проекта и его тестирование

Соберите проект и попробуйте произнести запрограммированные команды. Перед этим необходимо убедиться в работоспособности микрофона (см. Приложение А).

Приложение А. Подготовка звуковой аппаратуры

Прежде чем приступить к работе со звуком и речевыми системами, необходимо установить в компьютер звуковой адаптер (если компьютер не оборудован таким адаптером), установить драйвер звукового адаптера, подключить микрофон и головные телефоны, а также отрегулировать чувствительность микрофона.

Установка драйверов звукового адаптера

Если компьютер куплен недавно, то, скорее всего, он уже оборудован звуковым адаптером.

Если установлена операционная система Microsoft Windows 2000 Professional или Microsoft Windows XP, то, скорее всего, драйвер звукового адаптера уже имеется в системе.

Для проверки нужно открыть панель управления и запустить менеджер устройств. В операционной системе Microsoft Windows 2000 Professional для этого нужно дважды щелкнуть в папке Control Panel значок Administrative Tools, а затем повторить эту операцию для значка Computer Management. В результате на экране появиться окно программы Computer Management, показанное на рис. А.1.

Рисунок А.1. Проверка установки драйверов звукового адаптера

В левой части этого окна нужно нажать на значок Device Manager, после чего в правой части окна появится список устройств, установленных на компьютере. Необходимо раскрыть в этом списке папку Sound, video and game controllers, и найти пиктограмму с названием установленного звукового адаптера. На рис. А.1 видно, что компьютер оборудован звуковым адаптером SoundMAX, интегрированным на системной плате компьютера.

В том случае если звуковой адаптер был добавлен в компьютер уже после установки операционной системы, или если в составе операционной системы не нашлось подходящего драйвера для звукового адаптера, необходимо добавить драйвер вручную.

Программа установки драйвера должна находится на компакт-диске, который поставляется вместе со звуковым адаптером.

Подключение микрофона и наушников

Для работы с системами распознавания речи рекомендуется иметь комплект из микрофона и наушников, обеспечивающий постоянное расстояние от микрофона до рта говорящего.

Подключение такого микрофона, комбинированного с наушниками не должно вызывать никаких затруднений. Все, что нужно сделать, — это вставить штекеры микрофона и наушников в соответствующие разъемы звукового адаптера.

Настройка чувствительности микрофона

Успешная работа любой системы распознавания речи в значительной степени зависит от правильной настройки чувствительности микрофона.

Прежде всего, необходимо убедитmcz, что на системной панели задач (system tray) присутствует значок регулировки громкости Volume с изображением громкоговорителя. Такой значок показан в левой части рис. А.2.

Рисунок А.2. Значок регулировки громкости Volume

Если значка регулировки громкости на системной панели задач нет, то, скорее всего, в операционной системе не установлен драйвер звукового адаптера.

Если же значок регулировки громкости присутствует, то с его помощью можно легко получить доступ к регулировкам чувствительности микрофона. Щелкнув по этому значку дважды левой клавишей мыши, открывается доступ к регулировкам громкости Volume Control, показанным на рис. А.3.

Рисунок А.3. Диалоговое окно регулировки громкости Volume Control

По умолчанию в этом окне отображаются регулировки, имеющие отношение к устройствам вывода звука, поэтому здесь нет регулировок чувствительности микрофона. Для того чтобы получить доступ к этим регулировкам, нужно выбрать из меню Options строку Properties. В результате на экране появится одноименное диалоговое окно, показанное на рис. А.4.

Рисунок А.4. Окно Properties

В группе элементов управления Adjust volume for по умолчанию отмечен флажок Playback, в результате чего в окне Volume Control отображаются регулировки устройств вывода звука.

Необходимо отметить здесь флажок Recording, а также флажок Microphone, расположенный в списке Show the following volume controls. Сделав эти переключения, нужно нажать кнопку OK.

Теперь название и внешний вид диалогового окна изменятся (рис. А.5).

Рисунок А.5. Теперь в окне можно регулировать настройки микрофона

Окно получит название Recording Control, и в нем появится интересующая группа элементов управления Microphone.

С помощью флажка Select можно включать и отключать тот или иной источник входного сигнала. Для того чтобы сигнал поступал в звуковой адаптер с микрофона, необходимо отметить флажок Select в группе элементов управления Microphone.

После того как флажок будет отмечен, появится возможность регулировать чувствительность микрофона с помощью ползунка Volume. Ползунок регулировки баланса стерео Balance останется недоступным, так как используется монофонический микрофон.

В группе элементов управления Microphone может присутствовать кнопка Advanced, открывающая доступ к расширенным настройкам микрофона (для некоторых драйверов кнопка может быть недоступной).

Если  щелкнуть кнопку Advanced, на экране появится диалоговое окно Advanced Controls for Microphone, показанное на рис. А.6.

РисунокА.6. ДиалоговоеокноAdvanced Controls for Microphone

Состав элементов управления, расположенных в этом окне, и их доступность зависит от драйвера звукового адаптера. Для скачкообразного повышения чувствительности микрофона в некоторых случаях нужно отметить флажок MIC Boost, расположенный в диалоговом окне Advanced Controls for Microphone.

Пробная запись звука

В составе операционной системы Microsoft Windows имеется приложение Sound Recorder, с помощью которого можно испытать в работе микрофон и наушники, а также записать фрагменты звуковых сигналов в звуковые файлы. В дальнейшем такие файлы можно будет проанализировать с помощью других программных средств.

Приложение SoundRecorder

Для продолжения работы по изучению звуковой системы компьютера нужно запустить приложение Sound Recorder. Чтобы это сделать, нужно нажать кнопку Start, расположенную в нижнем левом углу рабочего стола, а затем выбрать из меню папку Programs AssesoriesEntertainment. Именно там находится пиктограмма программы Sound Recorder.

После запуска на экране появится главное окно приложения Sound Recorder, показанное на рис. А.7.

Рисунок А.7. Приложение Sound Recorder

Запуск записи звука

Для того чтобы запустить запись звука, нужно нажать кнопку Record, расположенную в правом нижнем углу главного окна приложения Sound Recorder (рис. А.7). На поверхности этой кнопки нарисован кружок красного цвета.

Теперь нужно произнести несколько слов в микрофон. По мере произнесения речи, в средней части главного окна приложения Sound Recorder будет отображаться зеленая осциллограмма оцифрованного сигнала (рис. А.8).

Рисунок А.8. Осциллограмма записываемого сигнала

Если вместо этой осциллограммы наблюдается только горизонтальная линия зеленого цвета, нужно говорить громче или увеличить чувствительностью микрофона.

Остановка записи

После того, как весь необходимый текст сказан, нужно остановить запись, щелкнув кнопку Stop с изображением прямоугольника черного цвета.

Перемотка в начало

Для прослушивания записи необходимо выполнить операцию «перемотки», аналогичную по своему назначению операции перемотки ленты в обычном магнитофоне. Это можно сделать с помощью кнопки Seek to Start с изображением двух треугольников, направленных острием влево.

Также можно установить запись в начало с помощью ползунка, расположенного непосредственно над кнопками.

Воспроизведение записанного звука

Выполнив перемотку записи в начало, нужно запустить ее на воспроизведение, щелкнув кнопку Play. На этой кнопке нарисован треугольник с острием, направленным в правую сторону.

Нужно произвести оценку качества и громкости звука. Прослушивая сделанную таким образом запись, необходимо убедиться в ее нормальной громкости, а также в отсутствии шипения и других помех.

Если слышно шипение, можно попробовать увеличить чувствительность микрофона. Если же уровень записанного сигнала слишком высок и появляются заметные на слух искажения голоса, необходимо снизить чувствительность микрофона.

Сохранение записи на диске

Чтобы сохранить сделанную запись на диске, нужно выбрать из меню File строку Save As. В результате на экране появится окно сохранения файла записи, показанное на рис. А.9.

Рисунок А.9. Окно сохранения записи

Как видно, это почти стандартное диалоговое окно сохранения файла, к которому добавлено поле Format, а также кнопка изменения формата записи Change.

В поле Format отображается текущий формат звукового сигнала, частота преобразования аналогового сигнала при оцифровке, а также режим записи — монофонический или стереофонический.

По умолчанию используется формат импульсно-кодовой модуляции (Pulse Code Modulation, PCM). Это формат, при использовании которого в выходной файл будет записан поток чисел, несущих информацию о значениях амплитуды сигнала. Именно такие данные поступают с аналого-цифрового преобразователя.

Так как обычный микрофон представляет собой монофоническое устройство, в поле Format находится обозначение Mono.

При сохранении звукового файла на диске можно изменить его формат, щелкнув кнопку Change, расположенную в диалоговом окне сохранения (рис. А.9). В результате на экране появится диалоговое окно Sound Selection, показанное на рис. А.10.

Рисунок А.10. Окно выбора формата записи

При помощи списка Format можно выбрать один из доступных форматов хранения звуковой информации. В частности, можно выбрать формат с упаковкой, в результате чего итоговый файл будет иметь меньший размер по сравнению с форматом PCM.

Наибольший интерес представляет настройка, выполняемая с помощью списка Attributes. Этот список позволяет изменить частоту дискретизации записанного ранее звукового сигнала.

Нужно отметить, что частоту дискретизации лучше всего менять еще до записи, а не после. В самом деле, если сделать запись с низкой частотой дискретизации, то при ее сохранении с высокой частотой дискретизации никакого улучшения качества не произойдет. Программа просто добавит промежуточные значения амплитуды, выполнив аппроксимацию.

Настройка параметров записи

Помимо чувствительности и громкости, программа Sound Recorder позволяет настраивать другие параметры, оказывающие влияние на качество записи, в частности, частоту дискретизации.

Нужно выбрать из меню File программы Sound Recorder строку Properties. После этого на экране появится окно настройки параметров записи, показанное на рис. А.11.

Рисунок А.11. Окно настройки параметров записи

Здесь в поле Length отображается длительность записи в секундах, в поле Data Size — размер области данных, в которой хранится звук, а в поле Audio Format — формат записи, о котором мы упоминали в предыдущем разделе.

Чтобы изменить формат записи, щелкните кнопку Convert Now. После этого на экране появится диалоговое окно выбора формата записи, показанное на рис. А.10.

В этом окне можно выбрать одну из стандартных частот дискретизации:

  • 8 000 Гц;

  • 11 025 Гц;

  • 12 000 Гц;

  • 16 000 Гц;

  • 22 050 Гц;

  • 24 000 Гц;

  • 32 000 Гц;

  • 44 100 Гц;

  • 48 000 Гц.

Как видно, частота дискретизации 8 000 Гц вполне подходит для оцифровки человеческой речи, частотный диапазон которой лежит в пределах 300-4000 Гц.

Помимо частоты дискретизации, можно задать разрядность данных, поступающих от аналого-цифрового преобразователя, равной 8 или 16 бит на одно измерение амплитуды, а также выбрать одноканальный (монофонический) или двухканальный (стереофонический) формат.

1 Известная также как теорема Котельникова, теорема Найквеста, теорема отсчетов.



Скачать документ

Похожие документы:

  1. 8 инновационная образовательная программа 8 1 основные цели и задачи реализации инновационной образовательной программы " качество знания компетентность" 8 1 1 цель реализации инновационной образовательной программы 8 1 2 основные

    Основная образовательная программа
    ... не только полезные с точки зрения приобретаемыхзнаний и умений, но и внешне эффектные и привлекательные демонстрационные ... компетенции, как потенциальная способность применять знания, умения и личностные качества для успешной деятельности ...
  2. Настоящая программа устанавливает минимальные требования к знаниям и умениям магистранта и определяет содержание и виды учебных занятий и отчетности

    Программа
    ... практики является формирование у магистрантов знаний, умений и навыков, связанных с организацией ... дисциплины в ее значении для приобретаемой профессии и в контексте обучения ... дисциплины в ее значении для приобретаемой профессии и в контексте обучения ...
  3. Тема 1 ОБЩАЯ ХАРАКТЕРИСТИКА МИРА БЛОК ДОБЫВАНИЯ ЗНАНИЙ И УМЕНИЙ Задание 1

    Документ
    ... МИРОВОГО ХОЗЯЙСТВА БЛОК ДОБЫВАНИЯ ЗНАНИЙ И УМЕНИЙ Задание 1. Проанализируйте рисунок ... материалы для углубления вновь приобретаемыхзнаний. 5. Готовить рецензию на ... . Тема 8. АФРИКА БJIOK ДОБЫВАНИЯ ЗНАНИЙ И УМЕНИЙ Задание 1. Пользуясь таблицей 1 в ...
  4. Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности (3)

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

    Учебно-методический комплекс
    ... финансовой политики; получить прикладные знания в области оперативного контроля ... организации и другие области знаний. Приобретаемыезнания и умения станут необходимой частью ... из форм проверки знаний студента, умения самостоятельно и творчески ...

Другие похожие документы..