API Java-речи

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

Основные технологии

Через Java Speech API поддерживаются две основные речевые технологии: синтез речи и распознавание речи .[1]

Синтез речи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Классы и интерфейсы 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, которые определяют дополнительные функции синтеза и распознавания речи. Интерфейс Synthesizer инкапсулирует операции речевого движка, совместимого с Java Speech API, для речевых приложений.

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

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

Ссылки

  • Часто задаваемые вопросы по Java Speech API от Sun/Oracle
  • JavaDocs для JSAPI 1
  • Оболочка JSAPI 2 с открытым исходным кодом
  • Эта технология используется для различных целей безопасности.
Взято с "https://en.wikipedia.org/w/index.php?title=Java_Speech_API&oldid=1137449927"