Java-код для преобразования текста в речь женским голосом - PullRequest
0 голосов
/ 12 марта 2019

Мне нужен код Java для преобразования текста в речь как мужским, так и женским голосом, и после этого я хочу сохранить это аудио в файл wav.Я пытался использовать этот код, но он только дает мужской голос.Пожалуйста, предложите мне способ получить женский голос без загрузки файла jar (просто добавив зависимость maven или около того).

В настоящее время используется этот код -

     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 queue is empty.
     synthesizer.speakPlainText("Hi, this is me. Fine.", null);
     synthesizer.waitEngineState(Synthesizer.QUEUE_EMPTY);

     // Deallocate the Synthesizer.
     synthesizer.deallocate();
     }

     catch (Exception e) {
     e.printStackTrace();
     }

и этот код -

  try {
        System.setProperty("FreeTTSSynthEngineCentral", "com.sun.speech.freetts.jsapi.FreeTTSEngineCentral");
        System.setProperty("freetts.voices", "com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory");
        Central.registerEngineCentral("com.sun.speech.freetts.jsapi.FreeTTSEngineCentral");

        SynthesizerModeDesc desc = new SynthesizerModeDesc(null, "general", Locale.US, null, null);

        Synthesizer synth = Central.createSynthesizer(desc);
        synth.allocate();
        desc = (SynthesizerModeDesc) synth.getEngineModeDesc();
        Voice voice = new Voice();
        // "business", "casual", "robotic", "breathy"
        voice.setAge(Voice.AGE_TEENAGER);
        voice.setGender(Voice.GENDER_FEMALE);
        voice.setStyle("breathy");
        synth.getSynthesizerProperties().setVoice(voice);
        synth.resume();
        synth.speakPlainText("Hi, this is me. Fine.", null);
        synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
        synth.deallocate();
    } catch (Exception ex) {
        ex.printStackTrace();
    }

но оба издают мужские голоса (и в KevinVoiceDirectory нет женских голосов).

...