ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
СИНТЕЗА РЕЧИ |
Синтез речи
по тексту
Синтез речи
по тексту — преобразование текста в произносимые слова.
Структура синтеза речи: разделение слов на фонемы; нахождение текста, требующего преобразования в
речь
-
анализ
текста (синтаксический, морфологический, семантический...)
-
выделение в тексте фонем. генерация цифрового звукового
сигнала
-
воспроизведение звукового сигнала (преобразование его в звук).
Способы
синтеза речи:
-
параметрический - применяется на заданном ограниченном
лексиконе, позволяет достичь высокого качества.
-
компилятивный (компиляционный, конкатенативный)
- на основе готового звукового словаря
-
предметно-ориентированный
-
компилирует записанные заранее слова и фразы для создания полных
речевых сообщений.
-
по
правилам - работает с произвольными текстами на основе их
лингвистического анализа,
обеспечивает управление всеми параметрами речевого сигнала
Артикуляционный синтез по правилам
- моделирует работу речевого тракта на запрограммированном знании
акустических и лингвистических ограничений и не использует
непосредственно элементов человеческой речи.
Формантный
синтез
по правилам
-
моделирует
звуковой строй языка (фонемный) и речи (формантный).
Форманта -
акустическая (спектральная) характеристика звуков речи
Синтез речи по правилам с использованием предварительно запомненных отрезков естественного языка:
-
аллофонов (реальных звуков,
реализации фонем в конкретном фонетическим окружением)
-
дифонов
(участков речевого сигнала,
включающих переходы между звуками)
-
полуслогов (сегментов,
содержащих половину согласного и половину примыкающего к нему
гласного)
-
коллокаций (синтаксически
и семантически целостных (устойчивых) единиц речи).
-
др....
|
Программное обеспечение синтеза речи Для пользовательского синтеза и распознавания речи на компьютере с Microsoft Windows необходимо наличие специального программного обеспечения, включающего: |
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.
|
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)
-
SAPI CFG
- собственную XML-грамматику
(в дополнение к SRGS) .
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-утверждение, возвращающее строку, содержащую некоторое семантическое значение.
|
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
Один
речевой движок может поддерживать различные голосовые модули.
Примеры:
-
Lernout & Hauspie TruVoice TTS engine (бесплатные
голоса):
Американский английский (1 МБ)
Британский английский (2,5 МБ)
Голландский (2,6 МБ)
Испанский (2,4 МБ)
Итальянский (2 МБ)
Немецкий (2,2 МБ)
Португальский (2,4 МБ)
Русский (2,9 МБ)
Французский (2,2 МБ)
-
IVONA Voices TTS
engine
(коммерческие
голоса,
60 - 420 Mb для каждого голоса):
Danish
Mads - male - Q3 2012
Naja - female - Q3 2012
Dutch
Ruben - male - Q3 2012
Lotte - female - Q3 2012
English
1. American English
Salli - female - Q3 2011
Ivy - child - Q3 2011
Chipmunk - male - Q1 2011
Kimberly - female - Q4 2010
Kendra - female - Q2 2010
Joey - male - Q2 2010
Eric - male - Q4 2008
Jennifer - female - 2007
2. Australian English
Russell - male - Q3 2012
Nicole - female - Q4 2011
3. British English
Emma - female - Q4 2010
Amy - female - Q4 2009
Brian - male - Q4 2009
4. Welsh English
Gwyneth - female - Q3 2011
Geraint - male - Q3 2011
French
1. French
Céline - female - Q2 2011
Mathieu - male - Q2 2011
2. Canadian French
Chantal - female - Q1 2012
German
Marlene - female - Q2 2011
Hans - male - Q2 2011
Icelandic
Dóra - female - Q3 2012
Karl - male - Q3 2012
Italian
Carla - female - Q3 2012
Giorgio - male - Q1 2012
Polish
Agnieszka - female - Q1 2012
Maja - female - Q4 2009
Jan - male - Q2 2009
Ewa - female - Q4 2006
Jacek - male - Q3 2004
Portuguese (Brazilian)
Vitória - female - Q1 2012
Ricardo - male - Q1 2012
Romanian
Carmen - female - Q2 2008
Russian
Tatyana - female - Q2 2013
Spanish
1. Castilian Spanish
Penélope - female - Q2 2011
Miguel - male - Q2 2011
2. American Spanish
Conchita - female - Q2 2011
Enrique - male - Q2 2011
Welsh
Gwyneth - female - Q3 2011
Geraint - male - Q3 2011
Примеры 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
(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). |
Полезный
ресурс
Поддержка синтеза речи в .NET
Framework
Фреймворк
(англ. framework — каркас, структура) — программное обеспечение,
облегчающее разработку и объединение разных компонентов программного
проекта.
.NET Framework
— программная платформа Microsoft для разных языков программирования на
основе общеязыковой среды исполнения
Common
Language Runtime
(CLR)
для создания приложений под ОС Windows, Windows Phone, Windows Server и
Windows Azure.
.NET
Framework
предоставляет управляемую среду выполнения, которая упрощает разработку
и развертывание приложений, а также возможности интеграции с различными
языками программирования.
.NET
Framework
состоит из
17.10.2013
Вышла новая версия
.NET
Framework 4.5.50938.18408
System.Speech
- пространства имен
.NET
Framework 4.5
для обеспечения синтеза речи:
Пространство имен |
Описание |
System.Speech.AudioFormat |
Пространство имен состоит из одного класса, SpeechAudioFormatInfo,
который содержит сведения о формате аудио, вводимых для
распознавания речи или выполняется выход из синтеза речи. |
System.Speech.Recognition |
Пространство имен содержит типы технологий речи рабочего
стола Windows для реализации программы распознавания речи. |
System.Speech.Recognition.SrgsGrammar |
Позволяет
программно создавать грамматики, совместимые SRGS. |
System.Speech.Synthesis |
Cодержит классы
для инициализации и настройки модуля синтеза речи, для
создания запросов для формирования речи для реакции на
события и изменения характеристик голоса. |
System.Speech.Synthesis.TtsEngine |
Поддерживает создание языка разметки синтеза речи (SSML) на
основе пользовательских TTS. |
|
N:System.Speech.Synthesis
N:System.Speech.Synthesis
- пространство имен
.NET
Framework 4.5
для инициализации и настройки модуля синтеза речи, создания запросов для
формирования речи для реакции на события и изменения характеристик
голоса.
Классы
N:System.Speech.Synthesis
Перечисления
N:System.Speech.Synthesis
Перечисление |
Описание |
PromptBreak |
Перечисляет значения интервалов интонационного разделения
(перерывов) между границами слова. |
PromptEmphasis |
Перечисляет значения для уровней выделения в приглашениях. |
PromptRate |
Перечисляет значения спокойным частота запросов. |
PromptVolume |
Перечисляет значения уровней громкости (громкость) в
запросах. |
SayAs |
Перечисляет типы содержимого для озвучивания элементов
например времени, дат и денежных единиц. |
SynthesisMediaType |
Перечисляет типы файлов мультимедиа. |
SynthesisTextFormat |
Перечисляет типы форматов текста, которые могут быть
использованы для создания объекта Prompt. |
SynthesizerEmphasis |
Перечисление уровней выделения синтезатора. |
SynthesizerState |
Перечисляет значения для состояния SpeechSynthesizer. |
VoiceAge |
Определяет значения возраста синтезированной речи. |
VoiceGender |
Определяет значения пола синтезированной речи. |
|
|