Распознавание речи в Intel Perceptual Computing SDK Лекция 4.

Презентация:



Advertisements
Похожие презентации
Высокоуровневые методы информатики и программирования Лекция 10 События.
Advertisements

Основы объектно-ориентированного программирования (ООП)
Естественно-языковые системы Выполнили: Книга А., Мишалевский С., Нагорный А., Крупский П. Группа – 9ВМ40-04.
1 (с) ИТЛаб, ННГУ, ВМК, 2003г Java 2 Micro Edition Жерздев С.В. Java 2 Micro Edition Лаборатория информационных технологий (ИТЛаб) При поддержке фирмы.
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Поддержка игровых процессоров и базовых средств разработки Лекция 7.
Владимир Костюков, АлтГТУ АлтГТУ им И. И. Ползунова Распределенная система мониторинга и диспетчерезации процессов гетерогенной среды.
Моделирование поведения взаимодействующих агентов в среде с ограничениями Юданов А.А., студент 525 гр. Научный руководитель: к.ф.-м.н. Бордаченкова Е.А.
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) 1.
Проблемы распознавания речи славянских языков Хейдоров И.Э. Белорусский государственный университет Сакрамент ИТ.
Разработка пользовательских интерфейсов Выполнил: Бредихин Юрий Вячеславович студент 3 курса, 31-И группы Старый Оскол, 2015.
Методология объектно- ориентированного программирования.
Распознавания речи распознавания речи. Что такое распознавание речи? Система преобразования речевых сигналов в текст либо в набор управляющих команд.
Средства мультимедиа. Мультимедиа - это современная компьютерная информационная технология, позволяющая объединить в компьютерной системе текст, звук,
OpenGL и Direct3D сравнение стандартов Выполнил: Пенкин А. Группа И-204.
Выполнили: Мартышкин А. И. Кутузов В. В., Трояшкин П. В., Руководитель проекта – Мартышкин А. И., аспирант, ассистент кафедры ВМиС ПГТА.
Распознавание речи – это многоуровневая задача распознавания образов, в которой акустические сигналы анализируются и структурируются в иерархию структурных.
"Электронные библиотеки " Дубна Россия Метаданные в системе управления многоязычной лингвистической базой знаний Н.В. Лунева Институт.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА.
Лекция 2: Описание класса 1. Поля 2. Методы 3. Конструкторы.
Транксрипт:

Распознавание речи в Intel Perceptual Computing SDK Лекция 4

Содержание лекции введение особенности речевого взаимодействия с компьютером модуль распознавания речи: основные возможности программирование распознавания речи, класс UtilPipeline процесс программирования распознавания речи режим голосового управления синтез речи

Введение Представители Intel показали ноутбук с тестовой версией системы распознавания речи Dragon от одного из лидеров этого рынка компании Nuance. В ходе демонстрации программа безошибочно распознавала короткие запросы на естественном английском языке, выполняя поиск в Google, запуская проигрывание музыки определенного жанра (по нечеткому запросу вроде «включи мне какой-нибудь рок»), публикуя сообщение в сервисе микроблогов Twitter и все это без прикосновения пользователя к клавиатуре.

Схема речевого взаимодействия

Основные направления использования голосовых интерфейсов: задачи, в которых главным образом требуется распознавание речи: простые команды и управление; простой ввод данных (по телефону); диктант; задачи, в которых кроме распознавания речи требуется понимание текста (интерактивный разговор): информационные киоски; диалоговая обработка запросов; интеллектуальные агенты.

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

Характеристики систем автоматического распознавания речи режим речи: может варьироваться от раздельного произношения слов до непрерывной речи стиль речи: варьируется от чтения текста до спонтанной речи; подстройка: зависимость от оратора – пользователь до работы с системой должен предоставить образцы своей речи для настройки, с другой стороны независимость от оратора не предполагает никаких настроек до использования системы

Характеристики систем автоматического распознавания речи словарь: набор слов может варьироваться от небольшого объема ( слов); языковая модель: самая простая языковая модель может быть определена как сеть с конечным числом состояний, более сложная, но при этом более близкая к естественному языку модель, описывается в терминах контекстно-зависимых грамматик;

Характеристики систем автоматического распознавания речи перплексивность (степень неопределенности вероятностной модели): популярная мера сложности задачи, объединяющая размер словаря и языковую модель; ряд внешних параметров, которые могут повлиять на производительность системы автоматического распознавания речи, включая характеристики шума окружающей среды, а также размещение и характеристики микрофона.

Основные компоненты системы автоматического распознавания речи

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

Модуль распознавания речи основан на Nuance* Dragon Assistant Nuance* Voice Command and Control распознавание в пределах списка предопределенных команд; Nuance* Voice Dictation распознавание коротких предложений (

Программирование распознавания речи, класс UtilPipeline Создание экземпляра модуля распознавания речи Класс MyVoicePipeline наследник класса UtilPipeline class MyVoicePipeline: public UtilPipeline { … };

Программирование распознавания речи, класс UtilPipeline Конструктор класса MyVoicePipeline Функция EnableVoiceRecognition() – открывает приложению возможность распознавания речи public: MyVoicePipeline(PXCSession *session=0) : UtilPipeline(session) { EnableVoiceRecognition(); }

Программирование распознавания речи, класс UtilPipeline Класс MyVoicePipeline Переопределение функции OnRecognized – получение и обработка событий распознавания virtual void PXCAPI OnRecognized(PXCVoiceRecognition::Recognition *data) { wprintf_s(L"Recognized \n",data->dictation); }

#include "stdafx.h" #include "util_pipeline.h" class MyVoicePipeline: public UtilPipeline { public: MyVoicePipeline(PXCSession *session=0):UtilPipeline(session) { EnableVoiceRecognition(); } virtual void PXCAPI OnRecognized(PXCVoiceRecognition::Recognition *data) { wprintf_s(L"Recognized \n",data->dictation); } }; int _tmain(int argc, _TCHAR* argv[]) { MyVoicePipeline pp; pp.LoopFrames(); return 0; }

Процесс программирования распознавания речи. Шаг I Создание сессии: SDK сессия – ключевой объект любого приложения, использующего SDK, и должен создаваться в первую очередь. Для создания сессии необходимо вызвать функцию PXCSession_Create. PXCSmartPtr session; PXCSession_Create(&session);

Процесс программирования распознавания речи. Шаг II Задание реализации модуля: для создания экземпляра модуля используется функция PXCSession::CreateImpl (&y) при этом создается экземпляр интерфейса Y и присваивается переменной y. PXCVoiceRecognition *vrec=0; session->CreateImpl (&vrec);

Процесс программирования распознавания речи. Шаг III Инициализация модуля: для инициализации модуля используются две функции QueryProfile – возвращает доступные конфигурации и SetProfile – устанавливает текущую активную конфигурацию. PXCVoiceRecognition::ProfileInfo pinfo; vrec->QueryProfile(0,&pinfo); UtilCapture capture(&session); capture.LocateStreams(&pinfo.inputs); vrec->SetProfile(&pinfo);

Процесс программирования распознавания речи. Шаг IV Инициализация грамматики: SetGrammar – активирует грамматический контекст; CreateGrammar – создает пустую грамматику и возвращает идентификатор; AddGrammar – добавляет слова в грамматику

Инициализация грамматики: Режим диктанта: pxcUID gid=0; vrec->SetGrammar(gid); Режим голосового управления: pxcUID gid; vrec->CreateGrammar(&gid); vrec->AddGrammar(gid,1,LOne); vrec->AddGrammar(gid,2,LTwo); vrec->AddGrammar(gid,3,LThree); vrec->SetGrammar(gid);

Процесс программирования распознавания речи. Шаг V Обработка событий: приложение реализует обработчик событий Handler и отслеживает появление события распознавания, используя функцию SubcribeRecognition class MyHandler: public PXCVoiceRecognition::Recognition::Handler { public: virtual void PXCAPI OnRecognized(PXCVoiceRecognition::Recognition *data) { // обработка распознавания данных} }; … vrec->SubscribeRecognition(0,new MyHandler);

Процесс программирования распознавания речи. Шаг VI Цикл обработки данных: PXCSmartPtr sample; PXCSmartSPArray sps(2); for (;;) { capture.ReadStreamAsync(sample.ReleaseRef(), sps.ReleaseRef(0)); vrec->ProcessAudioAsync(sample,sps.ReleaseRef(1)); sps.SynchronizeEx(); }

Процесс программирования синтеза речи предполагает создание экземпляра модуля синтеза речи и передачи данных в него. Шаг I Создание сессии: PXCSmartPtr session; PXCSession_Create(&session);

Процесс программирования синтеза речи. Шаг II Определение реализации модуля: в приложении используется функция PXCSession::CreateImpl для создания экземпляра интерфейса модуля распознавания речи PXCVoiceSynthesis: PXCVoiceSynthesis *tts=0; session->CreateImpl (&tts);

Процесс программирования синтеза речи. Шаг III Инициализация модуля: для инициализации модуля используются две функции QueryProfile и SetProfile. Первая функция возвращает доступные конфигурации. Вторая устанавливает текущую активную конфигурацию. PXCVoiceSynthesis::ProfileInfo profile; tts->QueryProfile(0, &profile); tts->SetProfile(&profile);

Процесс программирования синтеза речи. Шаг IV Обработка данных: приложение использует функцию QueueSentence для создания очереди предложений для синтеза, вызывает функцию ProcessAudioAsync для создания аудио буфера, который содержит синтезированную речь и передачи содержимого буфера на любое аудио устройство вывода

Цикл обработки данных: pxcUID sid; tts->QueueSentence(LSpeak this,10,&sid); PXCSmartPtr sample; PXCSmartSP sp; for (;;) { pxcStatus sts=tts-> ProcessAudioAsync(sid,&sample,&sp) ; if (stsSynchronize(); // передать участок синтезированной речи на устройство вывода }

Контрольные вопросы: 1)Как выглядит схема речевого взаимодействия человека и компьютера? 2)На каком этапе может быть использован пакет Intel Perceptual Computing SDK? 3)Какие сложности возникают в процессе автоматического распознавания речи? 4)Каковы основные компоненты любой системы автоматического распознавания речи? 5)Каковы особенности и возможности модуля распознавания речи Intel Perceptual Computing SDK? 6)Что необходимо иметь в виду разработчику использующему модуль распознавания речи?