Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

API Java Speech (JSAPI) представляет собой интерфейс прикладного программирования для кросс-платформенной поддержки командования и управления распознавателей, системы диктовки и синтезаторов речи . Хотя JSAPI определяет только интерфейс, существует несколько реализаций, созданных третьими сторонами, например FreeTTS .

Основные технологии [ править ]

Две технологии ядро речи поддерживается с помощью Java Speech API: синтез речи и распознавание речи .

Синтез речи [ править ]

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

Основные этапы создания речи из текста следующие:

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

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

Больница Святого Матфея находится на главной улице.-> «Больница Святого Матфея находится на главной улице»Добавьте 20 долларов на счет 55374.-> «Добавьте двадцать долларов на счет пять пять, три семь четыре».

Остальные шаги преобразуют устный текст в речь:

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

Синтезаторы речи могут делать ошибки на любом из этапов обработки, описанных выше. Человеческий слух хорошо настроен на обнаружение этих ошибок, но тщательная работа разработчиков может минимизировать ошибки и улучшить качество вывода речи. В то время как Java Speech API 1 опирался на язык разметки Java Speech API (JSML), в более новой версии используется SSML, чтобы предоставить вам множество способов улучшить качество вывода синтезатора речи.

Распознавание речи [ править ]

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

Основные шаги типичного распознавателя речи следующие:

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

Грамматика является объектом в API Java Speech , что указывает на то , что слова пользователь , как ожидается , говорить и в том, что шаблоны могут произойти эти слова. Грамматики важны для распознавателей речи, потому что они ограничивают процесс распознавания. Эти ограничения делают распознавание более быстрым и точным, поскольку распознавателю не нужно проверять странные предложения.

Java Speech API 1 поддерживает два основных типа грамматики: грамматики правил и грамматики диктовки. Эти типы различаются по-разному, в том числе тем, как приложения устанавливают грамматику; типы приговоров, которые они позволяют; как предоставляются результаты; количество требуемых вычислительных ресурсов; и как они используются в разработке приложений. Грамматики правил определены в JSAPI 1 с помощью JSGF , формата грамматики речи Java. Более новый JSAPI 2 поддерживает более свежий формат SRGS . JSAPI 2 не поддерживает диктовку.

Классы и интерфейсы Java Speech API [ править ]

Различные классы и интерфейсы, которые образуют Java Speech API, сгруппированы в следующие три пакета:

  • javax.speech: содержит классы и интерфейсы для универсального механизма речи
  • javax.speech.synthesis: содержит классы и интерфейсы для синтеза речи.
  • javax.speech.recognition: содержит классы и интерфейсы для распознавания речи.

Класс EngineManager похож на фабричный класс, который используют все приложения Java Speech API. Он предоставляет статические методы для обеспечения доступа к механизмам синтеза речи и распознавания речи. Интерфейс Engine инкапсулирует общие операции, которые речевой механизм, совместимый с Java Speech API, должен обеспечивать для речевых приложений.

Речевые приложения могут в первую очередь использовать методы для выполнения таких действий, как получение свойств и состояния речевого механизма, а также выделение и освобождение ресурсов для речевого механизма. Кроме того, интерфейс Engine предоставляет механизмы для приостановки и возобновления аудиопотока, генерируемого или обрабатываемого речевым механизмом. С помощью AudioManager можно управлять потоками. Интерфейс Engine разделен на подклассы интерфейсов Synthesizer и Recognizer, которые определяют дополнительные функции синтеза речи и распознавания речи. Интерфейс синтезатора инкапсулирует операции, которые совместимый с Java Speech API механизм синтеза речи должен обеспечивать для речевых приложений.

Java Speech API основан на обработке событий. События, генерируемые речевым механизмом, могут быть идентифицированы и обработаны по мере необходимости. Речевые события можно обрабатывать через интерфейс EngineListener, а точнее через RecognizerListener и SynthesizerListener.

Связанные спецификации [ править ]

Java Speech API был написан до Java Community Process (JCP) и нацелен на платформу Java Standard Edition (Java SE). Впоследствии Java Speech API 2 (JSAPI2) был создан как JSR 113 под JCP. Этот API нацелен на платформу Java, Micro Edition (Java ME), но также соответствует Java SE.

Ссылки [ править ]