最近,我找到了一种用Java制作文本到语音的方法(MaryTTS:http://mary.dfki.de/index.html

我发现以下代码可在Java中使用它:

public class MaryTTSRemote
{
    private MaryInterface marytts;
    private AudioPlayer ap;

    public MaryTTSRemote(String voiceName)
    {
        try
        {
            marytts = new LocalMaryInterface();
            marytts.setVoice(voiceName);
            ap = new AudioPlayer();
        }
        catch (MaryConfigurationException ex)
        {
            ex.printStackTrace();
        }
    }

    public void say(String input)
    {
        try
        {
            AudioInputStream audio = marytts.generateAudio(input);

            ap.setAudio(audio);
            ap.start();
        }
        catch (SynthesisException ex)
        {
            System.err.println("Error saying phrase.");
        }
    }
}


但是,当我尝试运行此类时,我不知道基本语音的名字是什么。有人知道我必须给该类什么字符串才能使其正常工作吗?

最佳答案

您可以通过拨打电话获取可用声音列表

marytts.modules.synthesis.Voice.getAvailableVoices()


这是source code以获得更多信息。

10-08 19:16