訊飛linux 7 語音板使用科大訊飛離線語音合成

2021-10-14 16:19:25 字數 2507 閱讀 7822

0x00 離線語音合成介紹

語音合成技術(text to speech,簡稱tts),是可以將文字轉換成語音檔案的技術。而且合成的語音檔案,可以根據不同場景需要而合成出不同音色、語速和語調的聲音,讓合成的語音就跟真人說話的聲音幾乎一樣。利用這項技術我們就可以讓我們的機械人、電腦、手機、音箱等各種電子裝置多了一種更為自然的方式來與人們進行互動。

現在我們大家接觸最多的語音合成技術,可能就是用高德導航的時候,它會通過語音給我們播報,指引我們到達目的地。當然還有一些其他應用場景,例如各種辦公大廳裡的叫號系統,機場、醫院的語音播報,很多基本上都是用這種語音合成技術來實現的。

在樹莓派上我們將sdk解壓,然後可以先瀏覽一下整個sdk的組成架構,方便我們後面修改:

修改好編譯指令碼後,接下來就是修改makefile檔案了。因為這裡gcc編譯選項需要修改,這裡在引用動態庫的路徑需要修改一下就可以了。主要就是修改13行的ldflags引數,修改後的makefile檔案如下:

1#common makefile header

23dir_inc = ../../include

4dir_bin = ../../bin

5dir_lib = ../../libs

67target    = tts_offline_sample

8bin_target = $(dir_bin)/$(target)

910cross_compile = 

11cflags = -g -wall -i$(dir_inc)

1213ldflags := -l$(dir_lib)/

14ldflags += -lmsc -lrt -ldl -lpthread -lstdc++

1516objects := $(patsubst %.c,%.o,$(wildcard *.c))

1718$(bin_target) : $(objects)

19    $(cross_compile)gcc $(cflags) $^ -o $@ $(ldflags)

2021%.o : %.c

22    $(cross_compile)gcc -c $(cflags) $

23clean:

24    @rm -f *.o $(bin_target)

2526.phony:clean

2728#common makefile foot

做好一切準備後,接下來就可以來編譯sample**了。編譯就是執行make.sh指令碼即可,生成的執行檔案是在bin目錄下:

我們可以嘗試安裝gcc編譯警告提示來修改一些tts_offline_sample.c原始碼,就是在最開始包含標頭檔案地方,新增乙個#include ,然後再編譯看看效果:

重新編譯

離線語音合成效果演示

其實這裡修改的**很簡單,就是把main()函式中修改了一下。首先判斷一下在執行程式的時候,是否有帶引數。接下來就是在text_to_speech()函式中,第乙個引數為要合成的文字,直接用ar**[1]引數。

科大訊飛離線語音合成自定義文字效果演示

增加合成的音效

[1].離線語音合成linux sdk文件. 

[2].離線語音合成產品. 

[3].qtts.**件參考. 

[4].msp_cmn.**件參考. 

科大訊飛和Tizen TTS語音合成引擎

最近在做乙個文字轉語音tts text to speech 的第三方軟體封裝,使用的是國內語音技術龍頭安徽科大訊飛公司提供的離線引擎aisound5.0,主要用於汽車導航用途。科大訊飛還提供了aitalk用於語音識別,aiwrite用於手寫識別服務等。另外還有針對6種平台的sdk和開發示例。一 科大...

整合科大訊飛TTS 離線語音合成服務

背景 最近機械人專案需要整合科大訊飛tts服務,遇到各種坑。本人開發過程中,個人理解,以上錯誤的根本原因就是找不到引擎,明明已經放置了離線demo中的所有msc引擎,為什麼找不到。根本原因還是因為給的離線語音合成中的sdk中的msc.so檔案是錯誤的,專案執行時候,找到了msc,但是發現msc不是自...

iOS篇 使用科大訊飛SDK整合語音合成和識別

訊飛開發步驟 1.申請賬號 5.語音識別 iflyspeechutility createutility initstring 3 建立有介面提示的語音識別物件建立乙個訊飛語音識別物件,可以對他進行一系列的呼叫 property nonatomic,strong iflyrecognizerview...