2010-05-25 20 views
1

我想在我的C++程序中使用節日TTS。如何使用節日文本到語音C/C++ API

所以我已經下載的所有文件形成http://www.cstr.ed.ac.uk/downloads/festival/2.0.95/

然後我開始閱讀對C手動(http://www.cstr.ed.ac.uk/projects/festival/manual/festival_28.html)++ API,但在手動他們說:

爲了使用節必須包括festival/src/include/festival.h' which in turn will include the necessary other include files in節/ 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'以及任何其他可選庫,如網絡音頻。 「

我使用UBUNTU 10.04(節包是由安裝默認和我可以用它形成由節命令終端)和GCC 4.4.3

但問題是,我相信新的GCC和我我不知道哪些文件,我必須包括爲了運行我的C代碼,我也不知道如何鏈接庫與我的c + +代碼。

所以請告訴我,我必須包括哪些文件,以及如何鏈接圖書館,如果任何人已經使用C++的節日tts然後請張貼您的代碼

謝謝

回答

1

1)#include <festival.h>在你的程序開始時(因爲你已經安裝了它)。它也可能是festival/festival.h或類似的東西(這取決於軟件包的安裝情況) - 而且我也說不準,因爲我從來沒有用過它。我仍然假設默認情況下第一個變體可以工作。

2)使用合適的GCC開關,鏈接您需要的所有庫(您肯定需要的那三個都以粗體文本列出)。如果你不熟悉GCC語法,你最好閱讀一些手冊/谷歌它,因爲有很多重要的信息。

P.S而不是通過控制檯開關添加靜態庫,您可以肯定地爲您的項目編寫一個適當的生成文件。但這裏的情況與GCC交換機相同 - 關於使用makefile有許多不同的手冊,我絕對不會將它們複製/粘貼到此答案中。

+0

感謝科蒂,但請告訴我,節日已經安裝在我的系統(默認),所以我應該從下載的文件重新安裝它 – Peeyush 2010-05-25 12:54:50

+0

我想你應該嘗試構建你的應用程序而不改變任何東西,只嘗試如果您有問題,請重新安裝/調查。 – 2010-05-25 12:59:10

0

雖然可能安裝了節日命令行程序,但基於節日的開發程序的標題位於不同的包中 - 確保您也安裝了festival-dev包。

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來編譯(節日取決於EST)。當然,你也可以直接在你的硬盤驅動器上進行操作,並直接對你需要的每個文件進行#include/link。