Реферат: Голосовое воспроизведение текста
2.1. Сбор информации о предметной области
Перед тем, как начать работу над проектом, необходимо изучить структуру DLL файлов, т.к. через подключение этих библиотек мы достигнем наиболее оптимального решения поставленной задачи.
DLL - это сокращение от Dynamic Link Library (динамически загружаемая библиотека).
С формальной точки зрения DLL - особым образом оформленный относительно независимый блок исполняемого кода.
Особый способ оформления предполагает наличие в DLL так называемых секций импорта и экспорта. Секция экспорта указывает те идентификаторы объектов (функций, классов, переменных), доступ к которым предоставляет данная DLL. В этом случае мы говорим об экспортировании идентификаторов из DLL. В общем случае, именно секция экспорта предоставляет особый интерес для разработчиков. Хотя ничто не мешает реализовать DLL, которая не имеет данной секции, но, тем не менее, выполняет полезную работу.
Относительная независимость связана с наличием/отсутствием секции импорта у DLL (т.е. секции, в которой описываются внешние зависимости данной DLL от других). Подавляющее большинство DLL (за исключением, быть может, DLL ресурсов) импортирует функции из системных DLL (kernel32.dll, user32.dll, gdi32.dll и др.). В большинстве случае при создании проекта в его опциях автоматически проставляется стандартный набор таких библиотек. Иногда в этот список необходимо добавить требующиеся для Ваших задач DLL (например, в случае использования библиотеки сокетов требуется дополнительно подключить библиотеку ws2_32.dll).
"Исполняемый" код в DLL не предполагает автономного использования. Перед тем, как можно будет приступить к использованию, необходимо загрузить DLL в область памяти вызывающего процесса (т.е. DLL не может выполняться сама по себе - ей обязательно нужен клиент). Это явление носит название "проецирование DLL на адресное пространство процесса". И это не удивительно, если вспомнить тот факт, что процессор работает не только с регистрами, но и с адресами памяти. Поэтому каждому объекту DLL требуется свое место "под солнцем", чтобы иметь возможность быть выполненным при вызове. В конечном коде exe-файла, который генерирует компилятор, не будет инструкций процессора, соответствующих коду данной функции. Вместо этого будет сгенерирована инструкция вызова соответствующей функции (call). Так как DLL отображена на адресное пространство процесса, то код DLL будет легко доступен по call-вызову.
Итак, формально, DLL - особым образом оформленный программный компонент, доступ к исполняемому коду которого приложение получает в момент старта (DLL неявной загрузки) или в момент использования (DLL явной и отложенной загрузки).
2.2. Выделение сущностей
При анализе предметной области были выделены следующие сущности и проблемы: на начальном этапе реализации требовалось создать текстовый редактор для отображения читаемого текста. Его задача заключается в том, чтобы пользователь мог полноценно воспользоваться всеми стандартными функциями редактирования текста.
Затем – подключить имеющиеся голосовые движки и предоставить пользователю возможность самостоятельно выбрать понравившийся синтезатор речи.
Следующий этап разработки – создание удобного и понятного интерфейса, не требующего от пользователя высокого уровня компьютерной грамотности.
Глава 3. Программная реализация
3.1. Логическая структура программы
Данная программа читает голосом любой текст. Язык чтения зависит от выбранного синтезатора речи. Она может читать текст, находящийся в окне программы.
Кроме этого, программа обладает возможностями изменения скорости чтения и громкости, записи речи в звуковой wav-файл
Для корректной работы программы придется загрузить некоторые недостающие файлы – text-to-speech engine и SAPI
TTS (text to speech) – технология, позволяющая синтезировать текст в его звуковое представление.
Text-to-speech engine (голосовой движок) – это набор файлов с описанием голоса. Позволяет синтезировать речь из текста. Существует много разных движков различных производителей. Движки отличаются качеством синтеза речи, количеством и характером голосов (мужчина, женщина, роботы), языком (русский, английский, французский, немецкий, ... ) и прочими параметрами. В Windows уже есть голосовой движок SpeechAPI(Microsoft Sam), но стандартным языком для него является английский.
Порядок работы с Суфлером:
1.загружаем файл для чтения либо вводим свой текст;
2.выбираем синтезатор речи;
3.запускаем чтение текста.
3.2.Подключение готовых библиотек кода
Для того чтобы использовать SpeechAPI нужно подключить СОМ-объект Microsoft Speech Object и прописать using SpeechLib.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Windows.Forms;
using SpeechLib;
Для начала работы с SpeechAPI нужно объявить основной объект: