我最近一直在尝试在我的项目中使用Flite文本语音转换系统(2.0),当我调用flite_text_to_speech()时,程序退出并显示以下消息:

VAL: tried to access lexicon in -1 type val


我根据Flite文档here中提供的代码制作了一个小型测试程序:

/* File: test.cpp */
#include <flite.h>

int main(int argc, char **argv)
{
    cst_voice *v;
    flite_init();
    v = new_voice();
    flite_text_to_speech("This is a test",v,"play");
    return 0;
}


可以干净地编译:

g++ -Wall -g -o flite_test test.cpp -I/usr/local/include/flite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex -lflite -lasound -lm


但是,当我运行./flite-test时,仍然出现相同的错误:

VAL: tried to access lexicon in -1 type val


这是Flite中的错误,还是我在这里做一些愚蠢的事情?我知道Flite 2.0相对较年轻,因此我正在考虑使用旧版本,但我宁愿使用最新版本。我的测试代码对任何人都有效吗?如果是,我应该做些什么?

更新:我只是用Flite 1.4尝试过,同样的事情发生了。

最佳答案

我研究了flite实用程序的来源,并通过从flite_main.c的主要功能中大量复制来解决了自己的问题。

关于c++ - Flite TTS演示无法运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28403734/

10-11 17:55