人工知能の急速な発展に伴い、音声テクノロジーは人々の日常生活に欠かせないものになりました。教育における音声読み上げ、インテリジェントな顧客サービスにおける自動音声応答、カーナビゲーションにおける音声プロンプトなど、多くのシナリオでテキストを音声に迅速に変換する必要がある場合があります。現時点では、言語 golang は、より効率的で簡潔なテキスト読み上げソリューションを提供します。この記事では、golang を使用してテキスト読み上げを完了する方法を読者に紹介します。
golang では、サードパーティ ライブラリを通じてテキスト読み上げ機能を実装できます。現在、市場には go-tts と go-astits という 2 つの人気のあるライブラリがあります。ここでは、より成熟した安定したゴーアスティットを選択します。
次のコマンドを使用して、golang インストール ディレクトリの src パスにある 3 番目のライブラリに go-astits パッケージをインストールします。
go get github.com/mkb218/gosynth/v2
sudo apt-get install espeak
package main import ( "fmt" "os/exec" "time" "github.com/mkb218/gosynth/v2/synth" ) func main() { // 调用espeak命令将文本转为音频文件 err := exec.Command("espeak", "-w", "test.wav", "Hello, World!").Run() if err != nil { fmt.Println("Failed to convert text to wave file:", err) return } // 播放音频文件 player := synth.NewWAVFilePlayer("test.wav") player.Play() time.Sleep(player.Duration()) }
go get github.com/go-resty/resty/v2 go get github.com/leonkaihao/baidu-tts-go/baidu
package main import ( "fmt" "github.com/go-resty/resty/v2" "github.com/leonkaihao/baidu-tts-go/baidu" ) func main() { // 获取Access Token client := resty.New() resp, err := client.R(). SetFormData(map[string]string{ "grant_type": "client_credentials", "client_id": "您的API Key", "client_secret": "您的Secret Key", }). Post("https://aip.baidubce.com/oauth/2.0/token") if err != nil { fmt.Println("Failed to get token: ", err) return } token := baidu.Token{} err = resp.UnmarshalJSON(&token) if err != nil { fmt.Println("Failed to unmarshal token response: ", err) return } // 调用语音合成API来将文本转为语音 resp, err = client.R(). SetHeader("Content-Type", "application/json"). SetQueryParam("access_token", token.AccessToken). SetBody(map[string]string{ "tex": "你好,欢迎使用百度语音合成API", "lan": "zh", "ctp": "1", "speed": "5", "per": "4", "cuid": "YOUR_CUID", "spd": "5", "vol": "15", "tts": "audio", "aue": "3", "channel": "1", "len": "-1", "pdt": "", "pvc": "1.0", "speaker": "0", "background_music_id": -1, }). Post("https://tsn.baidu.com/text2audio") if err != nil { fmt.Println("Failed to request API: ", err) return } fmt.Println(resp.StatusCode()) }
以上がGolangでテキストを音声に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。