1

我想在我的 C++ 程序中使用 Festival TTS。

所以我已经从http://www.cstr.ed.ac.uk/downloads/festival/2.0.95/下载了所有文件

然后我开始阅读 C++ API 的手册(http://www.cstr.ed.ac.uk/projects/festival/manual/festival_28.html),但在手册中他们说:

要使用 Festival,您必须包含festival/src/include/festival.h' which in turn will include the necessary other include files infestival/src/include' 和speech_tools/include' you should ensure these are included in the include path for you your program. Also you will need to link your program withfestival/src/lib/libFestival.a'、speech_tools/lib/libestools.a',speech_tools/lib/libestbase.a' 和 `speech_tools/lib/libeststring.a' 以及任何其他可选诸如网络音频之类的库。"

我正在使用 UBUNTU 10.04(默认安装节日包,我可以通过节日命令从终端使用它)和 GCC 4.4.3

但问题是我是 GCC 的新手,我不明白我必须包含哪些文件才能运行我的 C++ 代码,而且我也不知道如何将库与我的 C++ 代码链接。

所以请准确告诉我我必须包含哪些文件以及如何与库链接如果有人已经使用 C++ 的节日 tts 然后请发布你的代码

谢谢

4

3 回答 3

1

4岁。也许它已经解决了。反正。

我强烈建议您为此使用 CMAKE。你需要使用:

set(EST_DIR "${CMAKE_CURRENT_LIST_DIR}/")
find_package(EST REQUIRED)

set(Festival_DIR "${CMAKE_CURRENT_LIST_DIR}/")
find_package(Festival REQUIRED)

INCLUDE_DIRECTORIES(include ${CMAKE_SOURCE_DIR}
                            ${EST_INCLUDE_DIR}
                            ${Festival_INCLUDE_DIR})

file(GLOB_RECURSE headers "include/*.h*")
file(GLOB_RECURSE sources "src/*.c*")

add_executable(festivalProject ${sources} ${headers} )
target_link_libraries(Project ${EST_LIBRARIES} ${Festival_LIBRARIES})

为此,您将需要 2 个文件位于 CMakeLists.txt 文件的同一位置:

请注意,您将需要 EST 和 Festival 来编译它(Festival 取决于 EST)。当然,您也可以深入硬盘驱动器并#include/link 直接针对您需要的每个文件。

于 2014-12-19T12:56:43.120 回答
1

1)#include <festival.h>在程序的开头(因为您已经安装了它)。它也可能是festival/festival.h或类似的东西(这取决于软件包的安装方式) - 我不能确切地说,因为我从未使用过它。我仍然认为第一个变体默认情况下会起作用。

2) 使用适当的 GCC 开关链接您需要的所有库(您肯定需要的三个库在您的粗体文本中列出)。如果你不熟悉 GCC 语法,你最好阅读一些手册/谷歌它,因为有很多重要的信息。

PS除了通过控制台开关添加静态库之外,您绝对可以为您的项目编写适当的生成文件。但是这里的情况与 GCC 开关相同 - 关于使用 makefile 有许多不同的手册,我绝对不会在这个答案中复制/粘贴它们。

于 2010-05-25T12:43:22.053 回答
0

虽然可能安装了节日命令行程序,但基于节日开发程序的标头位于不同的包中——确保您也festival-dev安装了该包。

于 2010-06-23T08:13:27.030 回答