首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java FreeTTS缺失语音

Java FreeTTS缺失语音
EN

Stack Overflow用户
提问于 2015-01-06 22:22:42
回答 4查看 3.8K关注 0票数 6

我编写了一个小程序,它应该简单地用Java进行文本转换。

我的班级看起来是这样的:

代码语言:javascript
复制
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;

public class TalkResource {

private static final String VOICENAME_kevin = "kevin16";
private final String text; // string to speech

public TalkResource(String text) {
    this.text = text;
}

public void speak() {
    Voice voice;
    VoiceManager voiceManager = VoiceManager.getInstance();
    voice = voiceManager.getVoice(VOICENAME_kevin);
    voice.allocate();

    String newText = "example";
    voice.speak(newText);
    }
}

我很确定语法(和其他东西)是正确的,但是我的voice总是null

我假设"kevin16“既没有被找到,也没有包含到项目中,但我只是不知道如何为我的项目添加任何声音。为了获得依赖项,我使用maven

代码语言:javascript
复制
<dependency>
    <groupId>net.sf.sociaal</groupId>
    <artifactId>freetts</artifactId>
    <version>1.2.2</version>
</dependency>

一切都在那里,除了声音。根据我所读到的,我认为"kevin16“应该包含在FreeTTS中。有什么好办法吗?我怎样才能添加声音呢?此外,我还发现了一些关于MBROLA的东西,但这使我更加不清楚:/

谢谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-02-04 08:28:06

我也有同样的问题。当我试图打电话给voiceManager.getVoices()时,我正在得到一个空的列表。问题是,没有设置freetts.voices系统属性。因此,添加以下行解决了我的问题:

代码语言:javascript
复制
System.setProperty("freetts.voices", "com.sun.speech.freetts.en.us.cmu_us_kal.KevinVoiceDirectory");

现在,我可以使用kevinkevin16语音。

希望这能有所帮助。

票数 5
EN

Stack Overflow用户

发布于 2015-01-08 09:10:52

你在任何地方都叫过你的说话方法吗?

试着做这样的事情:

代码语言:javascript
复制
import com.sun.speech.freetts.Voice;
import com.sun.speech.freetts.VoiceManager;

public class TalkResource {

    private static final String VOICENAME_kevin = "kevin16";

    public TalkResource(String sayText) {
        Voice voice;
        VoiceManager voiceManager = VoiceManager.getInstance();
        voice = voiceManager.getVoice(VOICENAME_kevin);
        voice.allocate();

        voice.speak(sayText);
    }

    public static void main(String []args) {
        new TalkResource("hello");
    }
}

我将尝试一下,并说您比我更熟悉Maven服务器,但是我也经常使用FreeTTS和MBROLA的声音,而且在我的项目中仅仅引用freetts库从来没有遇到过问题。

如果您想要查看MBROLA,我确实有一条关于如何设置here的不错的帖子。

票数 1
EN

Stack Overflow用户

发布于 2016-03-01 13:07:28

对我来说也不管用。我使用了不同的存储库(您必须更改POM文件)。我使用了以下依赖项:

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.mobicents.external.freetts</groupId>
        <artifactId>freetts</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.mobicents.external.freetts</groupId>
        <artifactId>en_us</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.mobicents.external.freetts</groupId>
        <artifactId>cmu_us_kal</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.mobicents.external.freetts</groupId>
        <artifactId>cmu_time_awb</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.mobicents.external.freetts</groupId>
        <artifactId>cmulex</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.mobicents.external.freetts</groupId>
        <artifactId>cmutimelex</artifactId>
        <version>1.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.mobicents.external.freetts</groupId>
        <artifactId>cmudict04</artifactId>
        <version>1.2.2</version>
    </dependency>

为此,我使用了以下存储库:

代码语言:javascript
复制
<repository>
    <id>sonatype-oss-public</id>
    <url>https://oss.sonatype.org/content/groups/public/</url>
    <releases>
        <enabled>true</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27808248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档