ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ РиСУР

 

 

Распознавание речи

 

Распознавание речи — процесс преобразования произнесённых слов в печатный текст.

Распознавание речи включает в себя:

  • захват и оцифровку звука, произнесённого в микрофон;

  • преобразование оцифрованного звука в фонемы;

  • конструирование из фонем слов;

  • анализ контекста, в котором было произнесено слово, и, при необходимости, замена слов на похожие по звучанию.

Распознающая программа (движок распознавания текста) итерационно сравнивает распознанный текст с правилами грамматики приложения и при совпадении текста с серией правил формирует выходной поток XML с использованием языка разметки семантики (англ. Semantic Markup Language, SML). Выходной поток содержит распознанный текст, значения вероятностей правильного распознания и может содержать семантические значения, присвоенные при помощи разметки интерпретации семантики. Распознанный текст обычно используется для ввода данных при помощи диктовки и для управления приложениями при помощи речевых команд.

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

 

Синтез речи

Синтез речи — процесс преобразования текста в произносимые слова.

Синтез речи включает в себя:

  • разделение слов на фонемы;

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

  • генерация цифрового звука для воспроизведения.

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

  • генерировать звуки, подобные издаваемым голосовыми связками и использовать различные фильтры для моделирования длины горла, форму ротовой полости, расположение губ и языка;

  • собирать его из многочисленных кусков речи, записанных диктором.

 

Способы синтеза речи[править | править исходный текст]

Все способы синтеза речи можно подразделить на группы:[2]

  • параметрический синтез;
  • конкатенативный, или компиляционный (компилятивный) синтез;
  • синтез по правилам;
  • предметно-ориентированный синтез.

Параметрический синтез[править | править исходный текст]

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

Компиляционный синтез[править | править исходный текст]

Компиляционный синтез сводится к составлению сообщения из предварительно записанного словаря исходных элементов синтеза. Размер элементов синтеза не меньше слова. Очевидно, что содержание синтезируемых сообщений фиксируется объёмом словаря. Как правило, число единиц словаря не превышает нескольких сотен слов. Основная проблема в компилятивном синтезе — объёмы памяти для хранения словаря. В этой связи используются разнообразные методы сжатия/кодирования речевого сигнала. Компилятивный синтез имеет широкое практическое применение. В западных странах разнообразные устройства (от военных самолётов до бытовых устройств) оснащаются системами речевого ответа. В России системы речевого ответа до недавнего времени использовались в основном в области военной техники, сейчас они находят всё большее применение в повседневной жизни, например, в справочных службах операторов сотовой связи при получении информации о состоянии счета абонента.

Полный синтез речи по правилам[править | править исходный текст]

Полный синтез речи по правилам (или синтез по печатному тексту) обеспечивает управление всеми параметрами речевого сигнала и, таким образом, может генерировать речь по заранее неизвестному тексту. В этом случае параметры, полученные при анализе речевого сигнала, сохраняются в памяти так же, как и правила соединения звуков в слова и фразы. Синтез реализуется путём моделирования речевого тракта, применения аналоговой или цифровой техники. Причём в процессе синтезирования значения параметров и правила соединения фонем вводят последовательно через определённый временной интервал, например 5—10 мс. Метод синтеза речи по печатному тексту (синтез по правилам) базируется на запрограммированном знании акустических и лингвистических ограничений и не использует непосредственно элементов человеческой речи. В системах, основанных на этом способе синтеза, выделяется два подхода. Первый подход направлен на построение модели речепроизводящей системы человека, он известен под названиемартикуляторного синтеза. Второй подход — формантный синтез по правилам. Разборчивость и натуральность таких синтезаторов может быть доведена до величин, сравнимых с характеристиками естественной речи.

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

  • микросегментный (микроволновый);
  • аллофонический;
  • дифонный;
  • полуслоговой;
  • слоговой;
  • синтез из единиц произвольного размера.

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

Предметно-ориентированный синтез[править | править исходный текст]

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

 

 

 

Программное обеспечение синтеза речи

Для пользовательского синтеза и распознавания речи на компьютере с Microsoft Windows  необходимо наличие специального программного обеспечения, включающего:

 

 

Speech Application Programming Interface

 

Интерфейс программирования приложений  (англ. application programming interface, API ) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (модулем, библиотекой, сервисом) для использования во внешних программных продуктах. Используется программистами для написания всевозможных приложений.

API определяет функциональность, которую предоставляет программа (модуль, библиотека, сервис), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.

API библиотеки функций и классов включает в себя описание сигнатур и семантики функций.

Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API — это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать.

Программные компоненты взаимодействуют друг с другом посредством API.

Обычно компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов (как и протоколы передачи данных по Интернет, где каждый из 7 уровней пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню).

 

В контексте программирвоания понятие протокола логически тождественно понятию API.

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

 

COM (англ. Component Object Model — объектная модель компонентов; произносится) — технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих компонентов, каждый из которых может использоваться во многих программах одновременно.

COM воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования.

COM закрепился в основном на операционных системах семейства Microsoft Windows. На основе COM были реализованы технологии: Microsoft OLE Automation, ActiveX, DCOM, COM+, DirectX, а также XPCOM.

 

Web API - используется в веб-разработке, как правило, определенный набор HTTP-запросов, а также определение структуры HTTP-ответов, для выражения которых используют XML или JSON форматы.

Web API синоним для веб-службы (хотя в последнее время за счет тенденции Web 2.0 осуществлен переход от SOAP к REST типу коммуникации. Веб-интерфейсы, обеспечивающие сочетание нескольких сервисов в новых приложениях, известны как гибридные).

 

 

 

 

 

Speech Application Programming Interface

 

Speech Application Programming Interface (Speech API, SAPI) — интерфейс программирования приложений для распознавания и синтеза речи, основанный на технологии COM.

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

Microsoft Speech API 4.0 вышел в 1998 году. Он вошел в операционную систему Microsoft Windows 2000 (только с возможностью синтеза речи).

Microsoft Speech API 5.1 вышел в 2001 году как составная часть Speech SDK 5.1.

Microsoft Speech API 5.1 вошел в состав Microsoft Windows XP.

В Microsoft Windows 7 установлен  Microsoft Speech API 5.4

SAPI4 и SAPI5 несовместимы между собой, но при этом не мешают друг другу и могут работать на одном компьютере.

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

SAPI 5 позволяет добиться более качественного произношения, однако для нее:

  • встроена поддержка только английского языка

  • всего 3 голоса в комплекте — Mary, Mike и Sam

  • меньше бесплатных голосовых модулей

SAPI 5.4 поддерживает:

  • SSML (), который  предоставляет возможность разметки голосовых характеристик (скорость, громкость, высота, акцент, произношение).

  • собственный язык разметки SAPITTS для аннотирования текста (в дополнение к SSML) . SSML и SAPITTS имеют похожий синтаксис и SSML-тексты могут быть конвертированы в SAPITTS. 

  • ограниченные определения контекстно-свободных грамматик SRGS (только как XML-реализацию без BNF-расширений  (ABNF)  и без использования SRGS для тонового управления DTMF (touch-tone)

  • (в дополнение к SRGS) собственную XML-грамматику SAPI CFG.

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

For example, the recognized text of a yes/no grammar might be "yes", "yeah" or "yep", but the semantic meaning of all of these is "yes". This makes it easier for applications to consume recognition results, as well as empowering grammar authors to provide a full spectrum of possible utterances without burdening the developer with the interpretation task.

В аннотации семантической информации в SRGS может быть реализовано одно из следующих действий:

  • Строковый литерал, содержащий семантическое значение.

  • JScript-утверждение, возвращающее строку, содержащую некоторое семантическое значение.

 

 

Web API - используется в веб-разработке, как правило, определенный набор HTTP-запросов, а также определение структуры HTTP-ответов, для выражения которых используют XML или JSON форматы.

Web API синоним для веб-службы (хотя в последнее время за счет тенденции Web 2.0 осуществлен переход от SOAP к REST типу коммуникации. Веб-интерфейсы, обеспечивающие сочетание нескольких сервисов в новых приложениях, известны как гибридные).

 

 

 

 

Microsoft Speech Platform и Елена

12.10.2012

Microsoft Speech Platform - набор инструментов для построения решений с речевым интерфейсом (распознаванием и синтезом речи).

Microsoft Speech Platform является альтернативой Microsoft Speech API.

Текущая версия 11.0 платформы предлагает голоса для 26 языков

Русский голос Elena для Microsoft Speech API (файлы SpeechPlatformRuntime.msi для х64 и х86, размеры 2,6МБ и 2,2МБ соответственно) не поддерживают ни SAPI4, ни SAPI5.

Файл установки TTS (речевого движка) входит в состав Microsoft Speech Platform - Runtime Languages – набора языков для серверной части Microsoft Speech Platform.

Для каждого языка доступны для скачивания:

  • модули для распознавания речи (файлы, чьи имена начинаются с "MSSpeech_SR_")

  • голсовые модули (файлы, чьи имена начинаются с "MSSpeech_TTS_"). 

Русский голос Elena (не путать с Алёной от Nuance) - файл   MSSpeech_TTS_ru-RU_Elena.msi, размер 6 МБ).

Качество речи - посредственное; много ошибок в ударениях. Такая же ситуация и с немецким голосом - большое количестве ошибок в произношении немецких слов.

Для голосовых модулей Microsoft Speech Platform можно использовать те же теги, что и для голосов SAPI 5.

Теги смены голоса ("Voice" и "Lang") позволяют переключаться лишь между голосами платформы (нельзя при чтении одного текста задействовать голоса SAPI 5 и голоса Microsoft Speech Platform одновременно). 

 

Среди популярных программ синтеза речи корректно работает с Microsoft Speech Platform "Балаболка" (http://www.cross-plus-a.com/balabolka.zip).

Cool Reader 2.0.66, ICE Book Reader Professional Russian 9, "Демагог" Microsoft Speech Platform и Елену не находят.

 

 

Интерфейсы SAPI 5.4

Interfaces in SAPI 5.3 are:

Interface Name

Description

ISpEnginePronunciation

Provides methods that retrieve lists of information about a given word in a dictionary.

ISpEventSource2

Extends the ISpEventSource interface by providing a function that retrieves extended event information.

ISpGrammarBuilder2

Extends the ISpGrammarBuilder interface.

ISpPhoneticAlphabetConverter

Enables applications to convert phonemes from SAPI to the Universal Phone Set (UPS) and from UPS to SAPI.

ISpPhoneticAlphabetSelection

Enables the client to control the character phoneset in which pronunciations are encoded by the GetPronunciations method.

ISpPhrase2

Extends the ISpPhrase interface to provide SML result information and the audio stream containing the utterance corresponding to the result.

ISpPrivateEngineCallEx

Extends the ISpPrivateEngineCall interface.

ISpRecoContext2

Extends the ISpRecoContext interface.

ISpRecognizer2

Extends the ISpRecognizer interface.

ISpRecoGrammar2

Extends the ISpRecoGrammar interface.

ISpRecoResult2

Extends the ISpRecoResult interface.

ISpSerializeState

Enables applications to to save and restore the recognizer's internal state.

ISpShortcut

Provides methods that implement user shortcuts.

ISpSRAlternates2

Extends the ISpSRAlternates interface to enable an application to commit a particular text.

ISpSREngine2

Extends the ISpSREngine interface.

ISpSREngineSite2

Extends the ISpSREngineSite interface.

ISpXMLRecoResult

Defines the semantic results of speech recognition.

ISpeechResourceLoader

Gives applications control over loading resources.

ISpeechRecoResultDispatch

Supports IDispatch access to the ISpeechRecoResult and ISpeechXMLRecoResult interfaces.

ISpeechXMLRecoResult

Gets recognition results from the ISpXMLRecoResult as an SML document.

 

 

 

Структуры SAPI 5.4

Structures in SAPI 5.4 are:

Structure Name

Description

SPEVENTEX

Contains information about an event and extends the SPEVENT structure.

SPNORMALIZATIONLIST

Contains a list of alternative form normalizations for a word.

SPRULE

Represents a rule in a collection of run-time grammar rules.

SPSEMANTICERRORINFO

Represents information about a recognition error.

SPSHORTCUTPAIR

Describes a pairing of a spoken shortcut phrase with the corresponding text or a node in a linked list of shortcut pairs.

SPSHORTCUTPAIRLIST

Contains the shortcut pair linked list.

 

 

 

 

Text-to-speech engine

Text-to-speech engine (ТТS, движок синтеза речи, речевой движок) - программа преобразования текста в речь.

TТS  преобразуют текст в речь и голос, отвечают за тембр речи, скорость воспроизведения, интонацию, и другие особенности.

Движки синтеза речи выполнены в виде системного драйвера и не имеют внешнего интерфейса.

Для использования движка необходимы:

  • голосовой модуль (часто включается в состав движка)

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

Движки синтеза речи характеризуются несколькими параметрами:

  • количество языков синтеза речи (русский, английский, французский...),

  • тип голоса (мужской, женский...),

  • способ синтеза речи,

  • поддерживаемые стандарты (SAPI - speech application programming interface),

  • сфера применения.

Настроки поддерживаемые движками:

  • скорость речи (speed),

  • высота голоса (тембр, pitch),

  • громкость (volume)

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

Выпускаются движки синтеза речи различными компаниями.

Microsoft поставляет бесплатный базовый набор речевых движков вместе с операционными системами Windows XP/7/8 в совтаве Speech API (SAPI).

 

Для установки TТS нужно скачать дистрибутив, и запустить процесс установки.

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

 

 

 

 

TTS Engine для Windows

Примеры TTS Engine для Windows:

  • Движок Sakrament TTS Engine
    Разработчик: Sakramanet Дата 2006
    Сайт www.sakrament.com
    Поддержка SAPI 5
    Русскоговорящий движок от белорусской фирмы Sakrament с программой для чтения текстов Рассказчiк. 

  • Движок Acapela Elan Speech Cube Telecom RUS (Nicolai).
    Разработчик: Acapela Дата 2005
    Сайт http://www.elantts.com
    Поддержка 4 и SAPI 5

  • Движок Acapela Infovox Desktop 2.220 Engine (Alyona)
    Разработчик: Acapela Дата 2008
    Сайт http://www.elantts.com
    Поддержка SAPI 4 и SAPI 5

  • Движок ScanSoft RealSpeak Russian Voice (Katerina)
    Разработчик: ScanSoft (сейчас Nuance Communications) Дата 2005
    Сайт http://www.nuance.com/realspeak/
    Поддержка SAPI 5 Голос «Катерины» напоминает истерическую алкоголичку, но при этом более «человеческий», чем у «Николая». Не поддерживает регулировку тембра голоса и подключаемые словари.

  • Движок Loquendo TTS (Olga)
    Разработчик: Loquendo (Италия) Год выпуска: 2008
    Поддержка SAPI 4 и SAPI 5

  • Движок IVONA TTS (Tatyana)
    Разработчик: IVONA Software Год выпуска: 2013
    Сайт разработчика: www.ivona.com
    Поддержка SAPI 5

 

 

 

 

 

Мобильные TTS Engine

Коммерческие TTS:

  • SVOX Mobile TTS (http://www.svox.com/)
    Цена: договорная для B2B сегмента
    Языки: 26, включая русский
    Субъективная оценка качества звучания: высокое
    Мобильные ОС: Android, Symbian, Windows CE / Windows Mobile, BREW

  • Acapela TTS (http://www.acapela-group.com/)
    Цена: 2800€ плюс так называемая run-time license, за которую в самом лучшем случае придется платить по 49€ за каждое распространенное приложение
    Языки: 23, включая русский
    Субъективная оценка качества звучания: высокое
    Мобильные ОС: Symbian, Windows CE / Windows Mobile, Embedded Linux, iOS
    Для iOS сделан отдельный сайт http://www.acapela-for-iphone.com/.
    Предоставляет «облачный» синтез речи, а также портирование SDK под любую платформу.

  • Loquendo Embedded TTS (http://www.loquendo.com/)
    Цена: 3000€ плюс проценты с каждого проданного Вами мобильного приложения
    Языки: 26, включая русский
    Субъективная оценка качества звучания: высокое
    Мобильные ОС: Android, Symbian, Windows CE / Windows Mobile, Embedded Linux, iOS, Maemo, Moblin, MeeGo, PalmOS
    Движок Loquendo отвечает спецификации SSML 1.0, рекомендованной W3C и обладает специальными тегами, позволяющими делать речь более естественной, подмешивая в нее  кашель, смех и прочее.
    Движок отвечает спецификации SSML 1.0, рекомендованной W3C.

  • Sakrament TTS (http://www.sakrament.com/)
    Цена: 1500€ для одной ОС
    Языки: английский, русский
    Субъективная оценка качества звучания: среднее
    Мобильные ОС: Symbian, Windows Mobile
    Возможность разработки коммерческих продуктов: есть
    Качества синтеза речи Sakrament TTS вполне достаточно, что бы озвучивать короткие фразы типа номеров телефонов или названий приложений.

Свободные TTS:

  • Flite
    Языки: английский плюс возможность компиляции языков FestVox
    Субъективная оценка качества звучания: низкое
    Мобильные ОС: Android, Windows CE / Windows Mobile, iOS, PalmOS

  • eSpeak (http://espeak.sourceforge.net/)
    Языки: 39, включая русский
    Субъективная оценка качества звучания: среднее
    Мобильные ОС: Android, Windows CE / Windows Mobile

 

Встроенные решения:

  • Android (http://www.android.com/)
    Языки: английский, французский, немецкий, итальянский, испанский
    Субъективная оценка качества звучания: среднее
    Встроенная функциональность синтеза речи в Android доступна с версии 1.6.

По неизвестной причине Microsoft лишила свою мобильную ОС соответствующего программного интерфейса (MS SAPI).

 

 

Полезный ресурс

 

TTS, голосовые модули для различных языков, словари, сообщество, редакторы и др. http://mytts.forum2x2.ru

 

 

 

 24.11.2013

kmp