人工知能の急速な発展に伴い、音声テクノロジーは人々の日常生活に欠かせないものになりました。教育における音声読み上げ、インテリジェントな顧客サービスにおける自動音声応答、カーナビゲーションにおける音声プロンプトなど、多くのシナリオでテキストを音声に迅速に変換する必要がある場合があります。現時点では、言語 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インストールが完了したら、次のコードを golang エディタにコピーし、.go ファイルとして保存できます:
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()) }前上記のコードを実行する場合、test.wav ファイルが配置されているフォルダーが作成されていることを確認する必要があります。このコードでは、exec パッケージの Command 関数を通じて espeak コマンドを呼び出し、テキストをオーディオ ファイルに変換します。同時に、go-astits ライブラリのシンセ パッケージの NewWAVFilePlayer 関数を使用して、test.wav オーディオ ファイルを再生します。
go get github.com/go-resty/resty/v2 go get github.com/leonkaihao/baidu-tts-go/baiduBaidu 音声合成 API と対話するコードを作成します:
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()) }上記のコードでは、 API キーと秘密キーは、Baidu Cloud に適用される関連情報に置き換えられます。 Baidu 音声合成 API を呼び出すことで、ローカルに音声エンジンをインストールせずに音声合成機能を簡単に実装できます。
以上がGolangでテキストを音声に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。