Аннотация icon

Аннотация


1 чел. помогло.
Смотрите также:
«Югорский государственный университет»...
I. Пояснительная записка. Аннотация...
Аннотация рабочей программы дисциплины Аннотация дисциплины история культуры и искусства...
Типовая технологическая инструкция по составлению аннотаций и рефератов в узлах ксмб общие...
Использование сервиса микроблогов Твиттер мобильными операторами Украины: создание эффективных...
Аннотация программ дисциплин направления 033000 – Культурология Аннотация...
Используйте стиль...
Используйте стиль...
Примерный учебный план 16 Аннотации программ учебных дисциплин профиля 20 > Аннотация примерной...
Примерный учебный план 18 Аннотации программ учебных дисциплин профиля 23 > Аннотация примерной...
Информатизация сферы культуры: от концепции к реализации Аннотация...
Структурные и топологические инварианты быстрых перестраиваемых преобразований аннотация...



Загрузка...
скачать

Аннотация



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


Annotation


This diploma is devoted a problem of technology of synthesis of speech. Speech synthesis is most important of all problems of processing of speech and has wide application in a modern information technology. Therefore the purpose of the given work is the application programming for transfer of the text information in a sound track. In degree work appendix development cycles, principles of functioning of the created application and a problem and development prospect in the field are described.

Оглавление





Аннотация 1

Введение 3

Глава 1. Методы и программы синтеза речи 6

1.1 Модели синтеза речи 7

1.1.1 Модель компилятивного синтеза 7

1.1.2 Формантно-голосовая модель 8

1.2 Методы синтеза речи. 10

1.2.1 Волновой метод кодирования. 10

1.2.2 Параметрическое представление. 11

1.2.3 Синтез по правилам. 12

1.3 Конвертация текста в речь. 14

1.4 Анализ текста 14

1.4.1 Преобразование символов в стандартную форму. 14

1.4.2 Морфологический анализ 15

1.5 Программные решения синтеза русской и английской речи 19

^ Глава 2. Этапы разработки приложения. 21

2.1. Среда разработки Visual Basic. 21

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

2.3. Разработка прикладного приложения. 29

Глава 3. 34

3.1 Описание программного продукта 34

3.2 Предложения по использованию и дальнейшему развитию 36

3.3 Обзор голосовых движков и оптимизация получаемого звучания 37

3.3.1 Проблема разработки голосовых движков. 37

3.3.2 Доступные русскоязычные голосовые движки 38

3.3.3 Оптимизация получаемого звучания 39

Заключение 41

Приложение. Программный код продукта 44



Введение



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

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

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

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

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

  • Задача.

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

  • ^ Голосовой аппарат человека.

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


  • ^ Структура языка.

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

  • Технология.

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

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


^

Глава 1. Методы и программы синтеза речи



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

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

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


Технологии синтеза речи применяются в метро при объявлении остановок.

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

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

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

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

^

1.1 Модели синтеза речи



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

  • модели компилятивного синтеза

  • формантно-голосовой модели



^

1.1.1 Модель компилятивного синтеза



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

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

Создавая звуковые WAV-файлы с текстовыми сообщениями, можно озвучить операционную систему Microsoft Windows и многие ее приложения, такие как почтовые программы, инструментальные средства разработки и пр.

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

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


^

1.1.2 Формантно-голосовая модель



Формантно-голосовая модель основана на моделировании речевого тракта человека.

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


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

Что же касается «бытовых» синтезаторов речи, то в них можно с успехом применять и форманто-голосовую модель. Схематически эта модель показана на рисунке




Рис. Формантно-голосовая модель синтеза речи


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

При этом для достижения компромисса между качеством модели и ее сложностью были выбраны следующие основные параметры исследуемой системы:

· частота основного тона;

· частота шума;

· количество формант;

· центральная частота каждой форманты;

· вклад каждой форманты.


Частота основного тона определяет высоту голоса. Этот параметр не должен вызывать у Вас никаких вопросов. Что же касается частоты шума, то здесь нужно сделать пояснение.

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

В качестве альтернативы использует белый шум, спектр которого распределен по некоторому закону (например, по Гауссу) относительно некоторой центральной частоты. При этом закон распределения подбирается экспериментально, а частотой шума в этом случае является упомянутая выше центральная частота.

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

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

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

^

1.2 Методы синтеза речи.


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

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

^

1.2.1 Волновой метод кодирования.



Самый легкий путь - просто записать материал на пленку и по необходимости проигрывать. Этот способ обеспечивает высокое качество синтезируемой речи, т.к. позволяет воспроизводить форму естественного речевого сигнала. Однако этот путь синтеза не позволяет реализовать построение новой фразы, т.к. не предусматривает обращение к различным ячейкам памяти и вызов из памяти нужных слов. В зависимости от используемой технологии этот способ может представлять задержки в доступе и иметь ограничения, связанные с возможностями записи. Никаких знаний об устройстве речевого тракта и структуре языка не требуется. Единственно серьезное ограничение в данном случае имеет объем памяти. Существуют способы кодирования речевого сигнала в цифровой форме, позволяющие в несколько раз уплотнять информацию: простая модуляция данных, импульсно-кодовая модуляция, адаптивная дельтовая модуляция, адаптивное предиктивное кодирование. Данные способы могут уменьшить скорость передачи данных от 50кбит/сек (нормальный вариант) до 10кбит/сек, в то время как качество речи сохраняется. Естественно, сложность операций кодирования и декодирования увеличивается со снижением числа бит в секунду. Такие системы хороши, когда словарь сообщений небольшой и фиксированный. В случае же, когда требуется соединить сообщения в более длинное, сгенерировать высококачественную речь трудно, т.к. значения параметров речевой волны нельзя изменить, а они могут не подойти в новом контексте. Во всех системах синтеза речи устанавливается некоторый компромисс между качеством речи и гибкостью системы. Увеличение гибкости неизбежно ведет к усложнению вычислений.

^

1.2.2 Параметрическое представление.



С целью дальнейшего уменьшения требуемой памяти для хранения и обеспечения необходимой гибкости было разработано несколько способов, которые абстрагируются от речевой волны как таковой, а представляют ее в виде набора параметров. Эти параметры отражают наиболее характерную информацию либо во временной, либо в частотной области. Например, речевая волна может быть сформирована сложением отдельных гармоник заданной высоты и заданными спектральными выступами на данной частоте. Альтернативный путь состоит в том, чтобы форму речевого тракта описать в терминах акустики и искусственным путем создать набор резонансов. Этот метод синтеза экономичнее волнового, т.к. требует значительно меньшего объема памяти, но при этом он требует больше вычислений, чтобы воспроизвести исходный речевой сигнал. Данный способ дает возможность манипулировать теми параметрами, которые отвечают за качество речи (значение формант, ширина полос, частота основного тона, амплитуда сигнала). Это дает возможность склеивать сигналы, так что переходы на границах совершенно не заметны. Изменения таких параметров как частота основного тона на протяжении всего сообщения дают возможность существенно изменять интонацию и временные характеристики сообщения. Наиболее популярным в настоящие время методами кодирования в устройствах, использующих параметрическое представление сигналов, является метод, основанный на формантных резонансах и метод линейного предсказания (LPC - linear predictive coding). Для синтеза используются единицы речи различной длины: параграфы, предложения, фразы, слова, слоги, полуслоги, дифоны. Чем меньше единица синтеза, тем меньшее их количество требуется для синтеза. При этом, требуется больше вычислений, и возникают трудности коартикуляции на стыках. Преимущества этого метода: гибкость, немного памяти для хранения исходного материала, сохранение индивидуальных характеристик диктора. Требуется соответствующая цифровая техника и знание моделей речеобразования, при этом, лингвистическая структура языка не используется.

^

1.2.3 Синтез по правилам.



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

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

Метод параметрического представления требует компромисса между качеством речи и возможностью изменять параметры. Исследователи обнаружили, что для синтеза речи высокого качества необходимо иметь несколько различных произношений единицы синтеза (например, слога), что ведет к увеличению словаря исходных единиц без каких бы то ни было сведений о контекстной ситуации, оправдывающей тот или иной выбор. По этой причине процесс синтеза получает еще более абстрактный характер и переходит от параметрического представления к разработке набора правил, по которым вычисляются необходимые параметры на основе вводного фонетического описания. Это вводное представление содержит само по себе мало информации. Это обычно имена фонетических сегментов ( напр, гласные и согласные) со знаками ударения, обозначениями тона и временных характеристик. Таким образом, метод синтеза по правилам использует малоинформационное описание на входе ( менее 100 бит/сек). Этот метод дает полную свободу моделирования параметров, но необходимо подчеркнуть, что правила моделирования несовершенны. Синтезированная речь хуже натуральной, тем не менее, она удовлетворяет тестам по разборчивости и понятности. На уровне предложения и параграфа правила предоставляют необходимую степень свободы для создания плавного речевого потока.
^

1.3 Конвертация текста в речь.


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

^

1.4 Анализ текста

1.4.1 Преобразование символов в стандартную форму.


В самых различных текстах можно обнаружить символы и аббревиатуры, которые не принадлежат к категории " правильно образованных слов". Такие символы как "%" и "№", аббревиатуры типа "Гр." и "Сент" должны быть преобразованы в нормальную форму. Были разработаны подробные руководства по транскрибированию чисел, дат, сумм денег. Иногда возникают двусмысленные ситуации, такие как, например, использование знака дефиса в конце строки. Человек в таких случаях, чтобы определить подходящее произношение, обращается к контексту и к практическим знаниям, которые не поддаются алгоритмизации.

^

1.4.2 Морфологический анализ



В вводном тексте границы слов легко определяются. Можно хранить произношение всех слов. Размер словаря будет большим, но в таком подходе есть несколько привлекательных сторон. Во-первых, в любом случае необходим словарь слов, произношение которых является исключением из общих правил. Такими являются, например, заимствованные слова. Более того, все механизмы преобразования цепочки букв в фонетические значки допускают ошибки. Интересный класс исключений составляют такие слова как «бухгалтер» употребительные слова. Таким образом, приходим к выводу, что все системы должны иметь такой словарь исключений. Что касается нормальных слов, то здесь имеется два варианта. Первый крайний случай состоит в том, чтобы составить полный словарь. Хотя число слов ограничено, составить абсолютно полный словарь невозможно, т.к. постоянно появляются новые слова. Кроме того, в словарь необходимо будет внести все изменяемые формы слова. Другой крайний подход состоит в установлении ряда правил, которые бы преобразовывали цепочки букв в фонетические значки. Хотя эти правила очень продуктивны, нельзя избежать ошибок, что ведет к созданию словаря исключений. Чтобы правильно определить фонетическую транскрипцию слова, нужно правильно разбить слово на структурные составляющие. Было обнаружено, что важную роль в определении произношения играет морфема, минимальная синтаксическая единица языка. Морфемный словарь действует вместе с процедурами анализа. Этот подход эффективен и экономичен, т.к. хранение морфемного словаря не занимает много места, а хранить все изменяемые формы слова не нужно. Так как морфы являются основными составляющими слова, проиллюстрируем их полезность при определении произношения. При соединении морфов они часто меняют свое произношение. Например, при образовании множественного числа существительных "dog" и "cat" конечный /s/ будет звонким в первом случае и глухим во втором. Это пример морфофонемного правила, касающегося реализации морфемы множественного числа в различных окружениях. Становится очевидным, что для эффективного и легкого определения произношения нужно распознать составляющие морфемы слова и обозначить их границы. Еще один плюс морфемного анализа - обеспечение подходящей базы для использования правил преобразования буква-звук. Большинство таких правил рассматривают слово как неструктурированную последовательность букв, используя окно сканирования для нахождения согласных и гласных кластеров, которые преобразуются в фонетические значки. Буквы "t" и "h" в большинстве случаев выступают как единый согласный кластер, но в слове "hothouse" кластер /th/ разрывается границей двух разных морфем. Гласный кластер /ea/ представляет много трудностей для алгоритмов буква-звук, но в слове changeable он явно разрывается. Подобные формы заносятся в словарь. При помощи морфемного лексикона и соответствующего алгоритма анализа 95-98% слов анализируется удовлетворительно. В результате им приписывается фонетическая транскрипция и часть речи.


· Правила "буква-звук" и лексическое ударение

В системе синтеза речи нормализованный вводный текст подвергается морфологическому анализу. Может быть, что целое слово есть в словаре морфов, как, например, слово "snow". С другой стороны, слово может быть проанализировано как последовательность соединенных морфов. В английском языке среднее число морфов в слове, примерно два. В случае, если ни целое слово не может быть найдено в словаре морфов, ни проанализировано как последовательность морфов, в этом случае применяются правила преобразования "буква-звук". Важно подчеркнуть, что этот метод никогда не применяется, если морфемный анализ удался. Конвертация последовательности букв в последовательность звуков при помощи этих правил проходит в три этапа. Первый этап - отделение префиксов и суффиксов. Возможность отделения аффиксов не такая сильная, как в морфемном анализе, но действует удовлетворительно. Предполагается, что после отделения префиксов и суффиксов остается одна центральная часть слова, которая состоит из одного морфа, подвергаемого затем правилам преобразования.

Второй этап состоит в преобразовании согласных в фонетические значки, начиная с наиболее длинного согласного кластера до тех пор, пока все отдельные согласные не будут преобразованы. Последний этап - оставшиеся гласные преобразуются при помощи контекстов. Гласные преобразуются последними, потому что это наиболее трудная задача, зависящая от контекста. Например, гласный кластер /ea/ имеет 14 разных произносительных контекстов и несколько произношений (reach, tear, steak, leather).

В системе синтеза речи правила преобразования букв в звуки действуют в паре с широким набором правил расстановки лексического ударения. Еще 25 лет назад лингвистам не удавалось обнаружить никакой системы расстановки ударений в английских словах. В Настоящее время разработан ряд правил, эффективно справляющихся с этой задачей. Ударения зависят от синтаксической роли слова, например, прилагательное "invalid" отличается от существительного. Таких слов немного, но учитывать их необходимо. Кроме того, на некоторые суффиксы автоматически падают ударения в словах, как, например, в "engineer". Но бывают более сложные случаи, которые разрешаются применением циклических правил.

Подразумеваются, что все сильные и неправильные формы преобразуются на стадии морфологического анализа. Правила же "буква-звук" используются для преобразования новых и неправильно написанных слов. Например, слово "recieved" получает правильную транскрипцию, благодаря этим правилам преобразования.

· Парсинг

Каждая схема преобразования неограниченного текста в речь должна включать синтаксический анализ. Необходимо определить синтаксическую роль слова, т.к. она часто влияет на произношение и ударение. Кроме того синтаксический анализ важен для определения правильного тонального контура и временных характеристик. Просодические характеристики важны для синтеза речи, чтобы она звучала живо и естественно. К сожалению, полный синтаксический анализ на уровне сложного предложения (clause-level parsing) осуществить нельзя. Тем не менее, возможно провести синтаксический анализ на уровне фразы (phrase-level parsing), в результате которого определяется большая часть необходимой для синтеза речи структуры, хотя в некоторых ситуациях неизбежны ошибки из-за отсутсвия анализа целого предложения. Встречается множество синтаксически двусмысленных предложений, таких как "he saw the man in the park with a telescope", для которых фразовый анализ достаточен.

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

· Модификация ударения и фонологические уточнения

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

1.5 Программные решения синтеза русской и английской речи



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

На сегодняшний день при разработке программных комплексов, обрабатывающих или синтезирующих речь, основной упор делается более на тождественное попадание человеческой речи в заложенный в программу алгоритм, нежели на синонимичную интерпретацию воспринимаемой или синтезируемой речи. Такой подход к обработке речи вызван исключительно низкой производительностью современных процессоров. Более того, предложенные учеными алгоритмы работы с речевыми технологиями обязывают производителей прикладного программного обеспечения следовать скриптовому моделированию прямой речи, что противоречит универсальности области приложения разрабатываемого ПО. Да и общение с компьютером по принципу ДА-НЕТ тоже не очень радует пользователей, особенно наиболее продвинутых из них. Именно поэтому у речевых технологий пока такая низкая распространенность в среде обычных пользователей.

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

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

На сегодняшний день можно найти программные решения в области речевых технологий под разные операционные среды, но большинство пользователей интересуют программы, совместимые с операционной системой Windows. Поэтому на них и остановимся. Стоит обратить особое внимание на тот факт, что большинство качественных программ синтеза и распознавания речи заточены под работу в операционной системе Windows XP. Однако отметим, что рабочие приложения синтеза и распознавания речи под ОС Windows могут иметь два отличных друг от друга интерфейса взаимодействия с ней – такие, как SAPI версии 4.0 и SAPI версии 5.1. В разных операционных системах уже может быть предустановлен один из перечисленных речевых интерфейсов. Вместе с драйвером инициализации интерфейса синтеза речи, включающим в себя тройку демонстрационных англо-говорящих преобразователей Текст-в-Речь (TTS: Microsoft Sam; Microsoft Mike и Microsoft Mary), а также вместе с драйвером интерфейса распознавания речи (но уже с одним движком для английской речи) вы получите инструменты для разработки прикладного программного обеспечения, а также инструкции и коды программ с примерами активации речевого интерфейса.
^

Глава 2. Этапы разработки приложения.




2.1. Среда разработки Visual Basic.



Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки. Язык Visual Basic унаследовал дух, стиль и отчасти синтаксис своего предка — языка Бейсик, у которого есть немало диалектов. В то же время Visual Basic сочетает в себе процедуры и элементы объектно-ориентированных и компонентно-ориентированных языков программирования. Среда разработки VB включает инструменты для визуального конструирования пользовательского интерфейса.
Visual Basic широко применяется для изучения и использования. Он позволяет разрабатывать не только простые приложения с графическим интерфейсом, но и создавать сложные приложения. Программирование в VB представляет собой сочетание визуальных компонентов и контролов, определение атрибутов и действий для компонентов, написание дополнительного кода для расширения функциональных возможностей. Определенные по умолчанию значения и действия для компонентов позволяют создать простую программу без написания кода программистом. Ранние версии имели определенные проблемы с производительностью программ, но с использованием современных компьютеров и компиляцией собственного кода данная проблема стала менее значимой.
Компиляция программ была введена в Visual Basic 5, но при этом исполняемые программы до сих пор требуют наличия определенных библиотек для запуска. Эти библиотеки включены в Windows, начиная с Windows 2000, но для более ранних версий Windows они должны поставляться вместе с программой.
Формы создаются при помощи технологии «перетащи и брось» (drag and drop). Элементы управления просто размещаются на форме (например, поля ввода, кнопки, и т.д.). Элементы управления имеют свои атрибуты и обработчики событий. Многие атрибуты могут быть изменены во время исполнения программы, что позволяет создавать программы, динамически реагирующие на действия пользователя.
Visual Basic может создать исполняемые программы (EXE файлы), элементы управления ActiveX, библиотеки DLL, но, прежде всего, используется для разработки Windows приложений. Диалоговые окна с ограниченными функциональными возможностями могут использоваться для обеспечения подсказок. Элементы управления обеспечивают основные функциональные возможности приложения, а программист может расширить логику программы при помощи обработчиков событий. Например, выпадающий список автоматически отображает список и позволяет пользователю выбрать элемент. Обработчик событий вызывается для исполнения дополнительного кода в зависимости от выбранного элемента.
Язык использует справочную информацию, имеет большую библиотеку сервисных объектов, объектно-ориентированную разработку. В отличие от многих других языков программирования, Visual Basic не зависим от регистра. Сравнение строк зависит от регистра, но может быть выполнено без учета регистра.
Компилятор Visual Basic поставляется вместе с другими языками Visual Studio (C, C++), но ограничения в интегрированной среде разработки не позволяют создание некоторых видов приложений. Однако стоит отметить, что все недостатки языка вытекают из его основного достоинства — простоты разработки графического интерфейса. Поэтому многие программисты используют Visual Basic для разработки интерфейса пользователя, а функционал программы реализуют в виде динамически подключаемых библиотек (DLL), написанных на другом языке (чаще всего C++).
Visual Basic обладает следующими чертами:

* булевская постоянная «истина» имеет числовое значение −1 и «ложь» значение 0, потому что тип Boolean хранится как 16-разрядное целое число со знаком. Они взаимосвязаны между собой через логическую операцию Not иначе говоря Истина = Не Ложь.
* логические и битовые операторы объединены. Этим он непохож ни на один C подобный язык (Java, Perl).
* массивы объявляются с определением верхней и нижней границ, как это делается в Pascal и Fortran. Возможно, при использовании оператора Option Base, установить нижнюю границу по умолчанию, но это приводит к запутанности программ. Нижняя граница массивов не ограничена 0 или 1 и можно устанавливать более низкие границы. В Visual Basic .NET и VBScript нижняя граница фиксирована.
* сильная интеграция с операционной системой Windows и COM.
* целые числа автоматически преобразуются в вещественные при использовании деления (/). Оператор (\) производит деление с усечением дробной части.
* для переменных, которые были объявлены без указания типа, используется по умолчанию тип variant. Но при использовании оператора Deftype можно установить иной тип по умолчанию ( DefInt, DefBool, DefVar, DefObj, DefStr и др.). Тип по умолчанию может быть отменен для переменной при использовании специального символа-суффикса в имени переменной.
^

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



Как и большинство приложений для Windows, разработанная программа использует для синтеза и распознавания речи Microsoft Speech Application Interface (SAPI) – интерфейс программирования речи от «Майкрософт».

В данной работе была использована последняя на сегодняшний день версия SAPI 5.1.


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

COM (англ. Component Object Model − Объектная Модель Компонентов) − это технологический стандарт от компании Microsoft, предназначенный для создания программного обеспечения на основе взаимодействующих распределённых компонентов, каждый из которых может использоваться во многих программах одновременно. Стандарт воплощает в себе идеи полиморфизма и инкапсуляции объектно-ориентированного программирования. Стандарт COM не мог быть универсальным и закрепился в основном на операционных системах семейства Microsoft Windows. В современных версиях Windows COM используется очень широко. Основным понятием, которым оперирует стандарт COM, является COM-компонент. Программы, построенные на стандарте COM, фактически не являются автономными программами, а представляют собой набор взаимодействующих между собой COM-компонентов. Windows API предоставляет базовые функции, позволяющие использовать COM-компоненты. Библиотеки MFC и, особенно, ATL/WTL предоставляют гораздо более гибкие и удобные средства для работы с COM. Библиотека ATL от Microsoft до сих пор остаётся самым популярным средством создания COM-компонентов

Важным элементом речевой системы являются так называемые речевые "движки" (speech engine), которые и отвечают за то, насколько естественно будет звучать речь.

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

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

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

^ Интерфейс ISpVoice

Приложения, использующие Microsoft SAPI, могут управлять синтезом речи, используя COM (component object model) интерфейс ISpVoice.

После того как приложение создало объект ISpVoice, ему достаточно вызвать ISpVoice::Speak, чтобы произвести речевой вывод какого-либо текста. Кроме того, интерфейс ISpVoice также содержит несколько методов, позволяющих изменить голос и параметры синтеза. Например, скорость речи (ISpVoice:: SetRate), громкость звука (ISpVoice::SetVolume), или вообще сменить голос (ISpVoice:: SetVoice).

Microsoft SAPI поддерживает специальные управляющие конструкции, которые могут быть помещены в текст, предназначенный для синтеза. Эти конструкции позволяют в реальном времени контролировать параметры синтеза (например, голос, высота тона, паузы, произношение, скорость и громкость). Такая речевая разметка текста (sapi xsd) использующая стандарты формата XML, является простым и одновременно мощным средством настройки параметров синтезируемой речи, независимо от используемого речевого "движка" или текущего голоса.

Специальные элементы управления SAPI также могут быть добавлены в приложения, что позволяет изменять в реальном времени такие свойства синтеза, как голос, высота основного тона, ударение в словах, скорость речи и ее громкость. ISpVoice::Speak может работать как в синхронном режиме (возвращает управление, когда процесс синтеза закончится) или в асинхронном режиме (управление возвращается немедленно, а речь воспроизводится в фоновом режиме). Когда применяется асинхронный режим (SPF_ASYNC), информация о текущем состоянии, такие как состояние воспроизведения и текущее положение в тексте, могут быть получены посредством ISpVoice::GetStatus. Также в этом режиме новый текст может начать проговариваться или немедленно, прерывая текущее воспроизведение (SPF_PURGEBEFORESPEAK), или автоматическим добавлением нового текста в конец текущего воспроизведения.

У интерфейса ISpVoice нет отдельного метода для остановки речи, вместо этого используется метод ISpVoice::Speak с "пустым" текстовым фрагментом и флагом SPF_PURGEBEFORESPEAK. Для временной приостановки речи можно использовать метод ISpVoice::Pause, а для ее возобновления -- метод ISpVoice::Resume.

Кроме интерфейса ISpVoice, SAPI обладает еще рядом COM интерфейсов, позволяющих выполнять более сложную обработку текста и синтез речи по нему.


События

Microsoft SAPI взаимодействует с приложениями, генерируя события и используя стандартные механизмы направления сообщений в оконную процедуру обработки сообщений. При синтезе речи по тексту события используются преимущественно для синхронизации вывода речи. Приложения могут реагировать на события в реальном времени, поскольку события возникают на границах слов, фонем, на закладках, помещенных самим приложением, и т.п. Приложения могут получать дескрипторы этих событий, используя интерфейсы ISpNotifySource, ISpNotifySink, ISpNotifyTranslator, ISpEventSink, ISpEventSource, ISpNotifyCallback.

Приложение может выбрать между двумя различными видами движков распознавания речи (ISpRecognizer). Разделяемый распознаватель, который может совместно использоваться различными приложениями, рекомендуется для большинства приложений. Чтобы создать ISpRecoContext для разделяемого ISpRecognizer, приложение должно всего лишь вызвать CoCreateInstance с параметром CLSID_SpSharedRecoContext. В этом случае SAPI установит входящий звуковой поток, привязав к нему установки по умолчанию для входящих звуковых потоков. Для больших серверных приложений более подходящим решением может быть использование движка распознавания типа InProc. Чтобы создать ISpRecoContext для ISpRecognizer типа InProc, нужно сначала вызвать CoCreateInstance с параметром CLSID_SpInprocRecoInstance, чтобы создать свой собственный ISpRecognizer. Затем приложение должно вызвать ISpRecognizer::SetInput, чтобы установить аудиовход. Наконец, приложение может вызвать ISpRecognizer::CreateRecoContext , чтобы получить ISpRecoContext.

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


Словари

Приложения могут изменять произношение слов для речевого "движка", используя методы, предоставляемые объектами ISpContainerLexicon, ISpLexicon и ISpPhoneConverter.


Ресурсы

Поиск и выбор SAPI данных и компонентов (например, голосов, аудио-устройств, способов вывода информации или словарей) осуществляются при помощи интерфейсов ISpDataKey,ISpRegDataKey, ISpObjectTokenInit, ISpObjectTokenCategory, ISpObjectToken, IEnumSpObjectTokens, ISpObjectWithToken, ISpResourceManager и ISpTask.


Звук

Также существует интерфейс для управления параметрами звуковоспроизведения (например, для телефонии или специальной аппаратуры): ISpAudio, ISpMMSysAudio, ISpStream, ISpStreamFormat, ISpStreamFormatConverter.


Грамматика

Наконец, приложение может создать, загрузить и активировать интерфейс ISpRecoGrammar, который в основном показывает, какой тип высказывания был распознан – диктуемый текст или команда, и провести контроль грамматики. Сначала приложение создает ISpRecoGrammar, используя ISpRecoContext::CreateGrammar. Затем Приложение загружает грамматику, или посредством вызова ISpRecoContext::LoadDictation для диктуемого текста или ISpRecoContext::LoadCmdxxx для команд. Наконец, для того, чтобы активировать эту грамматику одновременно с началом распознавания, приложение вызывает ISpRecoGrammar::SetDictationState для диктуемого текста или ISpRecoGrammar::SetRuleState или ISpRecoGrammar::SetRuleIdState для команд.

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

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


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

SAPI обеспечивает высокоуровневый интерфейс между приложением и голосовым движком.

^

2.3. Разработка прикладного приложения.



Для разработки программного приложения был создан проект типа Standart EXE в среде разработки Visual Studio, имеющий одну главную форму(Рис 1).



Рис 1. Свойства проекта


Для создания формы программного приложения были использованы следующие элементы управления:

Label (метка). Метки – это поля, заполняемые программистом текстовой информацией и недоступные пользователю для редактирования. Содержимое метки определяется ее свойством Caption. Прямой ввод текста или рисование на метке во время выполнения программы не допускаются.

Text Box (текстовое окно). Текстовые окна – это экранные области, в которые пользователь может вводить текст. Распознать введенный текст можно с помощью свойства Text. На разработанной форме имеются два объекта типа Text Box:

Text1-поле для ввода и отображения читаемого текста.

Text2 -поле для отображения текущих параметров – скорости и громкости чтения.

Command Button (командная кнопка). Щелчок командной кнопки обычно активизирует какую-то операцию. Командные кнопки являются основными объектами для взаимодействия с пользователем. На форме имеются следующие кнопки:

Прочитать. При нажатии на эту кнопку определяются текущие настройки и прочитывается текст из объекта Text Box1:


Private Sub Command2_Click()

If Text1.Text <> "" Then

Set V.Voice = V.GetVoices().Item(Combo1.ListIndex)

V.Speak Text1.Text, SVSFlagsAsync

End If

End Sub


Обзор. Инициирует вывод диалогового окна для выбора текстового файла. Текст из выбранного файла импортируется в свойство text поля Text1.

Для открытия диалогового окна используется другой объект типа CommonDialog. Этот элемент управления позволяет использовать стандартные диалоговые окна Windows. При выборе можно использовать свойства объекта Filter (фильтр, используемый для ограничения списка видимых файлов) и Flags (значение, которое позволяет использовать в диалоговом окне дополнительные возможности):

CommonDialog1.InitDir = "D:\DOCUMENTS"

CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly

CommonDialog1.Action = 1

path = CommonDialog1.FileName


Сохранить в *.wav. При нажатии данной кнопки открывается диалоговое окно для выбора директории сохранения аудиофайла. Для выбора директории также используется объект типа CommonDialog.

Остановить. Кнопка использует метод pause класса SpVoice для приостановки чтения текста. При повторном нажатии чтение продолжается с помощь метода resume.

Стоп. Останавливает чтение текста путем пропуска всех символов из списка прочтения.

Combo Box (комбинированный список). Назван так потому, что, объединяя текстовое окно (поле ввода) с обычным списком, образует единый элемент управления. Однако, в отличие от обычного, комбинированный список не позволяет размещать элементы в несколько колонок. На форме объект Combo Box используется для выбора одного из голосовых движков, установленных в системе:

For Each T In V.GetVoices

strVoice = T.GetDescription

Combo1.AddItem strVoice

Next


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

Элемент ScrollBar - это полоса с бегунком, позволяющая выбрать значение между двумя концами элемента. Он располагается вертикально. Нижний конец элемента соответствует минимальному значению. Максимально значение находится на другом конце элемента. На форме элементы VScrollBar1 и VScrollBar2 используются для задания громкости звука и скорости чтения:

Private Sub VScroll1_Change()

V.Volume = 100 - VScroll1.Value

Text2.Text = "Vol: " & 100 - VScroll1.Value & "; Rate: " & VScroll2.Value

End Sub


Private Sub VScroll2_Change()

V.Rate = VScroll2.Value

Text2.Text = "Vol: " & 100 - VScroll1.Value & "; Rate: " & VScroll2.Value

End Sub


Процедуры программного кода привязываются к событиям объектов (Рис.2)




Рис.2. Фрагмент программного кода.


Для отслеживания озвучиваемого в данный момент текста реализована процедура V_Word:

Private Sub V_Word(ByVal StreamNumber As Long, ByVal StreamPosition As Variant, _

ByVal CharacterPosition As Long, ByVal Length As Long)

Text1.SetFocus

Text1.SelStart = CharacterPosition

Text1.SelLength = Length

End Sub
^

Глава 3.

3.1 Описание программного продукта



Готовая программа состоит из одной формы и имеет следующий вид:




Рис 1. Интерфейс программы


Большое поле в левой части окна служит для ввода текста. Помимо ручного ввода текста в поле, есть возможность импортировать его из файлов типа *.txt при помощи кнопки «Обзор». Параметры настройки располагаются в правой части окна. Наверху окна расположено выпадающие меню выбора голосового движка из списка установленных на ПК голосовых движков. Два вертикальных ползунка изменяют параметры скорости и громкости чтения. Текущие числовые значения этих параметров выводятся в текстовое поле, расположенное над ними.

После задания нужных параметров чтение начинается после нажатия кнопки «Прочитать». Во время чтения текста можно менять текущие параметры громкости и скорости чтения, а также ставить на паузу или прерывать чтение текста. Программа автоматический подсвечивает слова, которые читает в данный момент(Рис 2)



Рис 2. Выделение текста по словам


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



Рис3. Выбор места сохранения экспортируемого файла

^

3.2 Предложения по использованию и дальнейшему развитию



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

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

Программа работает с различными версиями пакета речевых функций Microsoft Speech API (SAPI). Он позволяет изменять скорость, тембр и громкость речи.

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

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

Программа сохраняет звуковую дорожку только в аудиофайл формата wav, который на данный момент признан устаревшим из-за отсутствия сжатия файла. В дальнейшем планируется добавить возможность сохранения аудиофайла в формате mp3.


^

3.3 Обзор голосовых движков и оптимизация получаемого звучания




Чтобы компьютер мог синтезировать речь, прежде всего нужен сам синтезатор - движок для синтеза речи (Text-To-Speech (TTS) Engine). Движок - это набор программных средств, выполняющих строго определенную задачу (в нашем случае - задачу синтеза речи) и предоставляющих интерфейс для использования его возможностей. Для удобства взаимодействия различных прикладных программ с разработанными речевыми продуктами компания Microsoft предложила использовать стандарт SAPI (Speech Application Programming Interface). Большинство речевых движков поддерживают одну из версий этого стандартного программного интерфейса для платформы Windows: MS SAPI 4.x или MS SAPI 5.x. Исключение составляют крупные и преуспевающие компании (AT&T, Nuance, ScanSoft), которые стараются выдвинуть свои стандарты и не поддерживать MS SAPI.

^

3.3.1 Проблема разработки голосовых движков.



Создание хорошего речевого движка - чрезвычайно сложная, трудоемкая и затратная задача. Поэтому не многие компании берутся за разработку подобных продуктов. Если англоязычными движками в настоящее время занимаются около десятка иностранных компаний, причем весьма успешно, то русскоязычных движков в буквальном смысле - раз, два и обчелся. Разработки в области синтеза русской речи ведутся как в России, так и в странах ближнего зарубежья, но они или являются предметом научных исследований (как в минской лаборатории "Распознавания и синтеза речи"), или находят коммерческое применение - встраиваются в системы управления бытовой техникой, автоматизированные телефонные справочные службы, сотовые телефоны, системы доступа и тому подобное (петербургский Центр речевых технологий). Областью применения некоторых других речевых технологий стала разработка голосового управления различными приложениями, работающими в среде Windows. Однако услышать голос этих движков все же можно - некоторые компании могут по вашему тексту сгенерировать речь и переслать ее вам в виде аудиофайла. Такие же файлы, демонстрирующие голоса движков, можно найти на сайтах некоторых разработчиков, например AT&T, а речь движков компании ScanSoft можно даже сгенерировать в интерактивном режиме по небольшому фрагменту произвольного текста.

Синтез речи в России, по словам его разработчиков, нужен в основном крупным организациям, предоставляющим информационные услуги. Всю мотивацию (кто, как, где это использует) оставим за кадром. Один пример: компания Elan Informatique распространяет систему синтеза речи, созданную на кафедре фонетики Санкт-Петербургского Государственного Университета. Система является упрощенной моделью синтеза, созданной на кафедре для компании France Telecom, и ориентирована на частного пользователя. А вот профессиональную версию (под UNIX) нигде не найти.

^

3.3.2 Доступные русскоязычные голосовые движки



L&H TTS3000 Russian - создан компанией Lernout & Hauspie, поддерживает MS SAPI 4.x и имеет два голоса - мужской и женский. Распространяется бесплатно корпорацией Microsoft в составе компонентов Microsoft Agent.

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

^ Digalo Russian Nikolai - разработан в соответствии со стандартом MS SAPI 4 и является собственностью французской компании Elan Informatique. Высокое качество синтезированной речи движка, разговаривающего довольно внятным баритоном и, главное, без иностранного. Однако это вполне объясняется тем, что создан голос русскими людьми на той же кафедре экспериментальной фонетики Санкт-Петербургского Государственного Университета.

^ Движок Клуба голосовых технологий при научном парке МГУ использует собственные библиотеки для воспроизведения голоса, поэтому не требует установки MS SAPI. Говорит на русском и английском языке (с русским акцентом) десятью голосами. Синтезированная речь звучит приемлемо, но слишком монотонно-механически. Лучшим голосом из всех персонажей обладает Диктор, слегка напоминающий Digalo Nikolai.

^ Sakrament TTS Engine - разработан белорусской компанией "Сакрамент" на основе уникальной акустической базы с использованием собственных алгоритмов обработки звука. Представленная для обзора третья версия синтезатора полностью соответствует MS SAPI 5.1 и поддерживает синтез русской и английской речи.

Говорит Ирина весьма приятным голосом, озвученные ею тексты воспринимаются на слух хорошо. Интересно, что дополнительно к поставляемым вместе с движком от "Сакрамента" голосам можно создать и свой собственный голосовой модуль (с помощью программы Sakrament Personal Voice Master) и затем подключить его к системе синтеза.

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

^

3.3.3 Оптимизация получаемого звучания



Для описания качества системы синтеза речи применяются два параметра- естественность звучания и понятность речи. Под естественностью звучания речевого синтезатора понимается на сколько получаемые звуки приближены к естественной речи человека. Под разборчивостью/легкость для понимания речевого синтезатора понимается на сколько легко можно понять искусственную речь. Идеальный речевой синтезатор должен обладать обеими характеристиками: и естественностью звучания и разборчивостью, и различные способы синтеза речи пытаются оптимизировать эти две характеристики. Некоторые из этих способов синтеза речи лучше передают естественность звучания, другие – понятность.

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

Для повышения понятность произношения «сложных текстов» имеет смысл понижать темп произносимого текста.

Заключение



Задача синтеза речи является одной из основных в сфере голосовых технологий. Актуальность проблемы преобразования текстовых файлов в звуковую дорожку не вызывает сомнений, сферы применения и перспективы развития этой технологии необычайно широки. Синтезаторы речи применяются в различных голосовых системах предупреждения, устанавливаемых в автомобилях и самолетах, многие сервисные службы общается голосом с применением технологий синтеза речи. В работе рассмотрены различные методы синтеза речи, их особенности и свойства, применяемые технологии и перспективы развития, а также представлен обзор существующих с данное время разработок в этой области.
В качестве практической части в дипломной работе рассмотрена задача создания прикладного приложения, синтезирующего звуковую дорожку из текстового файла. Средством разработки приложения был выбран Microsoft Visual Basic — средство разработки программного обеспечения, разрабатываемое корпорацией Microsoft и включающее язык программирования и среду разработки, для реализации компьютерного синтеза речи был использован Microsoft SAPI™ - программный продукт, созданный фирмой Microsoft специально для работы с речью. Разработанный программный продукт имеет возможности настройки параметров воспроизведения, экспорта звуковой дорожки в файл
Готовая программа имеет одну экранную форму, содержащую поле для ввода текстового сообщения, подлежащего озвучиванию, панель для редактирования параметров озвучивания, кнопки управления воспроизведением, а также для импорта текстового файла и экспорта звуковой дорожки. Во время чтения текста можно менять текущие параметры громкости и скорости чтения, а также ставить на паузу или прерывать чтение текста. Программа автоматический подсвечивает слова, которые читает в данный момент.
Приложение нацелено в основном на озвучивание руководств и технических описаний, в меньшей степени – для художественных текстов. Программа работает с различными версиями пакета речевых функций Microsoft Speech API (SAPI). Он позволяет изменять скорость, тембр и громкость речи. Естественность звучания синтезируемой речи в большей степени зависит от голосового движка, а оптимизировать понятность произносимого текста можно с помощью дополнительных знаков пунктуации и пробелов. Некоторые голосовые движки позволяют расставлять ударения в словах, а также использовать специальные словари «сложных слов», что сильно повышает качество произносимого текста.
Качество речи определяется исключительно выбранным в программе голосовым движком.
В качестве дальнейшего развития планируется распознавать текст, содержащийся в DOC, RTF и HTML файлах, изменять настройки шрифта и цвета, управлять процессом чтения из системного трея (области уведомлений) или при помощи глобальных сочетаний клавиш, а также возможность сохранения аудиофайла в формате mp3.

Список используемой литературы


  1. Афонин В.Л., Макушкин В.А., Интеллектуальные робототехнические системы, курс лекций, По материалам сайта www.intuit.ru. 2006 г.

  2. Фролов А., Фролов Г., Библиотека системного программиста, Том 15, Мультимедиа для Windows, Диалог-МИФИ , 1994 г.

  3. Сычев В.В., Обработка речевых сигналов, ИМПБ РАС, Пущино, 2001-2005 гг.

  4. Киминг Зу, Университет Небраска, Омаха, Распознавание и распознание голоса. По материалам сайта www.artkis.ru , 2007.

  5. Microsoft Speech SDK 5.1 Help.

  6. Microsoft Speech SDK 4.0 Help.

  7. Проект. Разработка программы распознавания русской речи для процессора SuperH RISK (Hitachi). По материалам сайта http://leaders.cs.msu.su/, 2002 г.

  8. Современная практика программирования на Microsoft Visual Basic и Visual C#, Издательство: Русская Редакция, 2006 г.

  9. С. Браун , Visual Basic 6. Серия: Учебный курс, Издательство: Питер, 2007 г.

  10. Денис Буторин, MS Agent и Speech API в Delphi, Издательство: БХВ-Петербург, 2005 г.



^

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



Dim save As String

Dim path As String

Dim txt As String

Option Explicit


Private S As SpeechLib.SpFileStream

Private WithEvents V As SpeechLib.SpVoice

Private WithEvents V1 As SpeechLib.SpVoice

Private T As SpeechLib.ISpeechObjectToken


Private Sub Command1_Click()

Text1.Text = ""

CommonDialog1.InitDir = "D:\DOCUMENTS"

CommonDialog1.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly

CommonDialog1.Action = 1

path = CommonDialog1.FileName

If path <> "" Then

Open path For Input As #1

Do Until EOF(1)

Line Input #1, txt

Text1.Text = Text1.Text + txt + vbCrLf

Loop

Close #1

End If

End Sub


Private Sub Command2_Click()

If Text1.Text <> "" Then

Set V.Voice = V.GetVoices().Item(Combo1.ListIndex)

V.Speak Text1.Text, SVSFlagsAsync

End If

End Sub


Private Sub Command3_Click()

CommonDialog2.InitDir = "D:\DOCUMENTS"

CommonDialog2.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly

CommonDialog2.Action = 2

save = CommonDialog2.FileName + ".wav"

If save <> ".wav" Then

Set V.Voice = V.GetVoices().Item(Combo1.ListIndex)

Set S = New SpFileStream

Call S.Open(save, SSFMCreateForWrite, False)

Set V.AudioOutputStream = S

If Text1.Text <> "" Then

V.Speak Text1.Text, SVSFNLPSpeakPunc

End If

S.Close

Set V.AudioOutputStream = Nothing

End If

End Sub


Private Sub Command4_Click()

Select Case Command4.Caption


Case "Остановить"

V.Pause

Command4.Caption = "Продолжить"


Case " Продолжить "

V.Resume

Command4.Caption = " Остановить "


End Select

End Sub


Private Sub Command5_Click()

V.Skip "Sentence", Text1.MaxLength

End Sub


Private Sub Form_Load()

Text1.Text = ""

Set V = New SpVoice

V.AlertBoundary = SVEPhoneme

V.Volume = 99

VScroll1.Min = 0

VScroll1.Max = 100

VScroll1.Value = 100 - V.Volume

V.Rate = 0

VScroll2.Min = 10

VScroll2.Max = -10

VScroll2.Value = 10 - V.Rate


Text2.Text = "Vol: " & 100 - VScroll1.Value & "; Rate: " & VScroll2.Value

Dim strVoice As String

Set V1 = New SpVoice

For Each T In V.GetVoices

strVoice = T.GetDescription

Combo1.AddItem strVoice

Next

Combo1.ListIndex = 1

save = "C:\savefile.wav"


End Sub


Private Sub VScroll1_Change()

V.Volume = 100 - VScroll1.Value

Text2.Text = "Vol: " & 100 - VScroll1.Value & "; Rate: " & VScroll2.Value

End Sub


Private Sub VScroll2_Change()

V.Rate = VScroll2.Value

Text2.Text = "Vol: " & 100 - VScroll1.Value & "; Rate: " & VScroll2.Value

End Sub

Private Sub V_Word(ByVal StreamNumber As Long, ByVal StreamPosition As Variant, _

ByVal CharacterPosition As Long, ByVal Length As Long)

Text1.SetFocus

Text1.SelStart = CharacterPosition

Text1.SelLength = Length

End Sub




Скачать 424,82 Kb.
оставить комментарий
Дата02.12.2011
Размер424,82 Kb.
ТипДокументы, Образовательные материалы
Добавить документ в свой блог или на сайт

не очень плохо
  1
хорошо
  1
отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

наверх