2

我在 CentOS 上使用 mbrola voice (us1)。我正在尝试将音频保存为 wav 文件。但是在这一行(下面以粗体显示)-voice.speak(),它会抛出异常 ProcessException "No audio data read"。当我在 windows 环境下运行它甚至在 Linux 上运行 Kevin16 voice 时它运行良好。尝试使用谷歌搜索为什么 voice.speak() 命令对 mbrola 声音有这种行为但找不到任何东西。下面是代码,有什么线索吗?

public static void createAudioFile(String text, String fileName) {
    AudioPlayer audioPlayer = null;

    System.setProperty("mbrola.base", Constants.mbrolaDiskPath);
    Voice voice;
    VoiceManager vm =  VoiceManager.getInstance();
    voice = vm.getVoice("mbrola_us1");
    //voice = vm.getVoice("kevin16");
    voice.allocate();

    try{
        String directoryPath = audioDir+fileName;
        audioPlayer = new SingleFileAudioPlayer(directoryPath,Type.WAVE);
        voice.setAudioPlayer(audioPlayer);
        **voice.speak(text);**
        voice.deallocate();
        audioPlayer.close();

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

}
4

0 回答 0