- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想将一个字符串传递给 espeak-ng,它通过声音读取我的字符串!
我搜索并找到了这个程序并做了一点修改以将其从意大利语更改为英语(在注释行下),但没有用:
#include <string.h>
#include <malloc.h>
#include <espeak-ng/speak_lib.h>
espeak_POSITION_TYPE position_type;
espeak_AUDIO_OUTPUT output;
char *path=NULL;
int Buflength = 500, Options=0;
void* user_data;
t_espeak_callback *SynthCallback;
espeak_PARAMETER Parm;
//char Voice[] = {"lt+klatt2"};
char Voice[] = {"English"};
char text[30] = {"this is a english test"};
unsigned int Size,position=0, end_position=0, flags=espeakCHARS_AUTO, *unique_identifier;
int main(int argc, char* argv[] )
{
output = AUDIO_OUTPUT_PLAYBACK;
int I, Run = 1, L;
espeak_Initialize(output, Buflength, path, Options );
espeak_SetVoiceByName(Voice);
//const char *langNativeString = "lt"; //Default to US English
const char *langNativeString = "en"; //Default to US English
espeak_VOICE voice;
memset(&voice, 0, sizeof(espeak_VOICE)); // Zero out the voice first
voice.languages = langNativeString;
//voice.name = "klatt";
voice.name = "US";
voice.variant = 2;
voice.gender = 1;
espeak_SetVoiceByProperties(&voice);
Size = strlen(text)+1;
printf("Saying '%s'",text);
espeak_Synth( text, Size, position, position_type, end_position, flags,
unique_identifier, user_data );
espeak_Synchronize( );
printf("\n:Done\n");
return 0;
}
问题是什么?
它编译没有错误,并使 speaks
成为可执行文件,但是当我尝试 ./speaks
时,结果是:
Saying 'this is a english test'
:Done
没有声音!
编辑:我在 gitub
中问了我的问题,有人说:
The path parameter of espeak_Initialize needs to point to the espeak-ng-data directory, or its parent directory. Alternatively, you can set the ESPEAK_DATA_PATH environment variable to point to that directory.
所以我确实将这一行 ESPEAK_DATA_PATH=/usr/local/share/espeak-ng-data
添加到 /etc/environment
文件,但没有任何反应!
我还尝试将代码的路径变量更改为此(因为我知道地址是真实的)char *path="/usr/local/share/espeak-ng-data"
但是又没有声音了!
最佳答案
好的,尝试这个你需要先构建和安装 libpcaudio。
然后您配置和构建 espeak。
接下来,当您运行时,您可能需要指定库路径:
LD_LIBRARY_PATH=/tmp/espeak-ng/src/.libs/:/usr/local/lib ./sotest
然后这通知我一个问题:
Error processing file '/usr/local/share/espeak-ng-data/phontab': No such file or directory.
这告诉我想要安装 libespeak-ng,因为路径是硬编码的(当然路径本身可以使用 ./configure --prefix=
等修改)
我个人发现我必须在构建所有库工件期间执行 LD_LIBRARY_PATH 技巧,并且必须连续运行多次 make 直到最后它不再报告更多错误。
All this indicates that project maintenance is not very good. I've seen several segfaults even along the way.
终于成功了之后
sudo make install
您的测试程序最终运行并发出预期的声音。
关于c++ - 为什么我的 espeak-ng 程序什么都不说?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47449310/
我第一次尝试在下面的代码中使用谷歌默认的TTS引擎,但是我发现,不支持波斯语! 因此,我在手机上下载并安装了 espeak RedZoc TTS 引擎,并将默认的 TTS 语言更改为波斯语。当我在手机
我正在尝试使用 espeak 实现一些功能,但缺少一些参数(我不知道)并在 Linux 上处理代码块下一个代码运行良好并读取阿拉伯文本 `#include #include #incl
我正在使用一个现有程序,该程序从套接字读取 xml,将文本转换为 wav 文件,然后通过音频输出设备播放。 我想将其剥离,以便它直接播放文本到音频。 现在我很难弄清楚我是否有正确的代码并理解它是否真的
我想知道是否有一种方法可以像在命令行中那样访问 espeak: laptop:~$espeak say this line first say this line second ... 现在,我在 p
是否可以控制 eSpeak 文本到语音的速度?如果可能的话 - 怎么做? 最佳答案 您可以使用 -s 指定每分钟的字数。选项,默认为 160 wpm。 espeak "hello world" -s
我一直在尝试使用 espeak 为 cmusphinx 创建一个字素到音素字典,但是当我从菜单中选择编译并选择编译字典时,它说编译成功,但我在任何地方都找不到 .dic 文件。 请告知在哪里可以找到我
我的应用程序中有这段文本到语音的代码。 public void onInit(int status) { // TODO Auto-generated method stub if
我正在使用 espeak来自 C++ 的 API 从我的嵌入式应用程序中进行一些简单的文本到语音合成。目前,我已经从关于如何开始的基本示例中复制了这一行: espeak_SetVoiceByName(
是否可以在 system(""); 函数中使用 espeak,例如 system("aplay 1.wav") ? 我喜欢在 Ubuntu 操作系统内的 C/C++ 代码中使用 espeak。 最佳答
我想在 windows7 中使用 espeak( http://espeak.sourceforge.net ) 和 python2.7.0-32 位。 另外,我还想保存espeak生成的音频文件。
我想将一个字符串传递给 espeak-ng,它通过声音读取我的字符串! 我搜索并找到了这个程序并做了一点修改以将其从意大利语更改为英语(在注释行下),但没有用: #include #include
这可能是个愚蠢的问题。 Firefox 相当严格,因为众所周知,Internet Explorer 可以毫无问题地激活病毒。但是对于我的英语课,我需要没有命令屏幕的 eSpeak。该程序在本地运行,但
我正在使用 espeak 库进行文本到语音的转换。我能够从字符串生成动态声音来执行此操作。 os.system('espeak "hello"') 这行得通。但我需要的是从字符串中生成声音。这是我做的
我正在创建一个基于 ruby 的应用程序,我希望它能读出一些文本。到目前为止,我正在使用 espeak: fork{exec ("espeak 'New file located #{timelo
我需要帮助。我使用 Raspberry pi 构建了一个机器人,然后用相机和扬声器对其进行了扩展。我安装了一个 lighthttpd 服务器,我可以使用一个简单的网站来控制它。 工作正常,网络服务器显
我在网上找到这段代码: #include #include #include espeak_POSITION_TYPE position_type; espeak_AUDIO_OUTPUT ou
问题:我正在尝试使用 espeak 文本转语音引擎。所以我让它在 linux 上运行得很好(下面的代码)。现在我也想将这个基本程序移植到 Windows,但这几乎是不可能的... 部分问题是 Wind
我在终端中从 Linux 运行 espeak,它工作得很好。我的问题是我想从 php(在 xampp 中)运行 espeak。 但是那是行不通的。并且没有发出任何声音 在 windows 中,当 p
这是我的代码。我想从用户那里得到 5 个字符串,当用户插入它时,espeak 会读取它们中的每一个。但是我收到了 segmentation fault(core dumped) 消息。 #includ
如何在声卡每次采集一个数字时听到口头的 DTMD 数字? 目标是 radio 控制我的电脑和接口(interface)事件,通过手持收发器调用 dtmf 音调。 我用 multimon 听 DTMF
我是一名优秀的程序员,十分优秀!