Преобразование текста в речь в Java

Опубликовано: 14 Июля, 2021

Java Speech API: Java Speech API позволяет Java-приложениям включать речевую технологию в свои пользовательские интерфейсы. Он определяет кроссплатформенный API для поддержки распознавателей команд и управления, систем диктовки и синтезаторов речи.

Java Speech поддерживает синтез речи, что означает процесс создания разговорного языка машиной на основе письменного ввода.

Важно помнить, что Java Speech - это только спецификация, т.е. реализация не включена. Таким образом, реализации предоставляют сторонние компании. Пакет javax.speech определяет общие функции распознавателей, синтезаторов и других речевых механизмов. Пакет javax.speech.synthesis расширяет эту базовую функциональность для синтезаторов.

Мы поймем, что требуется Java API для преобразования текста в речь

  1. Движок: интерфейс Движка доступен внутри речевого пакета. «Движок речи» - это общий термин для системы, предназначенной для работы с речевым вводом или выводом речи.
     import javax.speech.Engine;
  2. Central: Central предоставляет возможность находить, выбирать и создавать распознаватели речи и синтезаторы речи.
     import javax.speech.Central;
  3. SynthesizerModeDesc: SynthesizerModeDesc расширяет EngineModeDesc свойствами, специфичными для синтезаторов речи.
     импорт javax.speech.synthesis.SynthesizerModeDesc;
  4. Синтезатор: интерфейс синтезатора обеспечивает первичный доступ к возможностям синтеза речи. SynthesizerModeDesc добавляет два свойства: Список голосов, предоставляемых синтезатором. Голос, загружаемый при запуске синтезатора.
     импортировать javax.speech.synthesis.Synthesizer;

Ниже представлена реализация Java Speech Synthesis с открытым исходным кодом под названием FreeTTS в виде шагов:

  • Загрузите FreeTTS в виде zip-папки отсюда.
  • Распакуйте zip-файл и перейдите в
     freetts-1.2.2-bin / freetts-1.2 / lib / jsapi.exe
  • Откройте файл jsapi.exe и установите его.
  • Это создаст файл jar с именем jsapi.jar . Это JAR-библиотека, содержащая библиотеку FreeTTS, которая будет включена в проект.
  • Создайте новый проект Java в своей среде IDE.
  • Включите этот файл jsapi.jar в свой проект.
  • Теперь скопируйте приведенный ниже код в свой проект.
  • Выполните проект, чтобы получить ожидаемый результат ниже.

Ниже приведен код вышеуказанного проекта:




// Java code to convert text to speech
import java.util.Locale;
import javax.speech.Central;
import javax.speech.synthesis.Synthesizer;
import javax.speech.synthesis.SynthesizerModeDesc;
public class TextSpeech {
public static void main(String[] args)
{
try {
// Set property as Kevin Dictionary
System.setProperty(
"freetts.voices" ,
"com.sun.speech.freetts.en.us"
+ ".cmu_us_kal.KevinVoiceDirectory" );
// Register Engine
Central.registerEngineCentral(
"com.sun.speech.freetts"
+ ".jsapi.FreeTTSEngineCentral" );
// Create a Synthesizer
Synthesizer synthesizer
= Central.createSynthesizer(
new SynthesizerModeDesc(Locale.US));
// Allocate synthesizer
synthesizer.allocate();
// Resume Synthesizer
synthesizer.resume();
// Speaks the given text
// until the queue is empty.
synthesizer.speakPlainText(
"GeeksforGeeks" , null );
synthesizer.waitEngineState(
Synthesizer.QUEUE_EMPTY);
// Deallocate the Synthesizer.
synthesizer.deallocate();
}
catch (Exception e) {
e.printStackTrace();
}
}
}

Выход:

Рекомендации:

  • https://docs.oracle.com/cd/E17802_01/products/products/java-media/speech/forDevelopers/jsapi-doc/javax/speech/package-summary.html
  • https://www.javatpoint.com/q/5931/java-code-for-converting-audio-to-text-and-video-to-audio
  • http://www.oracle.com/technetwork/java/jsapifaq-135248.html

Статья по теме: Преобразование текста в речь в Python

Эта статья предоставлена Акашем Шараном . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

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