[應用] 以 RESTful API 通訊的雲端語音合成 (Text To Speech) in C++ 開發

語音合成介紹 

       最近在研究語音合成技術,各家的平台大都以雲端的語音合成為主,少數還提供離線的語音合成。本文找了三家 (阿里、百度、同花順) 提供語音合成的平台,平台會提供各類開發的 SDK 和 RESTful API 兩種接口,其中它的SDK 就是根據自己使用的程式語言調用SDK的接口,例如在之前中文語音合成+語音辨識 以百度的AI開放平台 in Python 開發 一文中我們用 Python 語法調用它的 SDK 函數。

設計方式

        另一種開發的接口是 RESTful API,這是一種通用的網路通訊接口。它的通訊方式是靠 HTTP 的 GETPOST...的協定上傳文本和語音合成的參數,經過雲端系統的運算後,再回傳音檔給開發者。開發 RESTful API in C++ 過程需要先整合 curl 和 json 兩個開源代碼,如下圖所示。因為要 HTTP 網路上傳到雲端,我們必須在這些平台上註冊自己的帳號,使用語音合成的過程需要經過用戶認證。認證後,每個平台上傳文本的步驟與細節有些許不同,請參考各家的說明。


        最後,將三家平台整合成一個小的測試工具,如下圖一~圖三所示。圖一是阿里雲的平台與參數,圖二是百度平台的參數,圖三是同花順的平台與參數。該工具使用的過程記錄成影片,如下。未來隨著行動網路越來越快,雲端計算的應用也會越來越多且複雜,語音和影像處理的應用會更多。
圖一:阿里雲的語音合成之參數表
圖二:百度的語音合成之參數表
圖三:同花順的語音合成之參數表

實現展示


留言

此網誌的熱門文章

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[筆記] Android APP 藍芽範例說明 -- BluetoothChat

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Visual Studio 遠端偵錯的設定步驟

[筆記] Android APP BLE範例程式 -- BluetoothLeGatt

[模組] LD3320 離線語音辨識晶片與 ESP32 無線傳輸