我想在我的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 in
festival / 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 with
festival / src / lib / libFestival.a',speech_tools/lib/libestools.a',
speech_tools / lib /libestbase.a'和`speech_tools / lib / libeststring.a'以及任何其他可选库,如net audio。 “
我正在使用UBUNTU 10.04(默认安装了节日套餐,我可以通过节日命令使用它形成终端)和GCC 4.4.3
但问题是我是GCC的新手,我不知道为了运行我的C ++代码我必须包含哪些文件,而且我也不知道如何使用我的c ++代码链接库。
所以请告诉我我必须包含哪些文件以及如何与图书馆链接,如果有人已经使用cts节日tts那么请发布你的代码
谢谢
答案 0 :(得分:1)
1)#include <festival.h>
在您的程序开头(因为您安装了它)。它也可能是festival/festival.h
或类似的东西(这取决于软件包的安装方式) - 而且我不能确切地说,因为我从未使用它。我仍然假设第一个变体默认工作。
2)使用适当的GCC开关链接您需要的所有库(您肯定需要的那三个库以粗体文本列出)。如果你不熟悉GCC语法,你最好阅读一些手册/谷歌,因为有很多重要的信息。
P.S 您可以为项目编写适当的makefile,而不是通过控制台开关添加静态库。但是这里的情况和GCC开关一样 - 有很多关于使用makefile的不同手册,我绝对不会在这个答案中复制/粘贴它们。
答案 1 :(得分:1)
我强烈建议您使用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})
为此,您需要在CMakeLists.txt文件的同一位置使用2个文件:
请注意,您需要同时使用EST和Festival进行编译(节日取决于EST)。当然,您也可以直接在硬盘中使用#include / link直接对准您需要的每个文件。
答案 2 :(得分:0)
虽然可能会安装festival命令行程序,但基于festival开发程序的标题位于不同的包中 - 确保您也安装了festival-dev
包。