Golang 開発者に必須のスキル: Baidu AI インターフェイスに簡単に接続して音声認識を実現
はじめに: 人工知能の急速な発展により、音声認識技術は徐々に私たちの生活に浸透し、日常のコミュニケーションや交流の重要な方法の 1 つになりました。 Golang 開発者として、音声認識のために Baidu AI インターフェイスに接続する方法を知っておくと、アプリケーション開発がさらに便利になります。この記事では、Golang を使用して Baidu AI インターフェイスに簡単に接続して音声認識を実現する方法を読者に理解してもらい、コード例を添付します。
go get -u github.com/go-resty/resty/v2 go get -u github.com/json-iterator/go
speech_recognition.go
、ファイルに次のコードを記述します: package main import ( "fmt" "io/ioutil" "net/http" "os" "strings" "github.com/go-resty/resty/v2" "github.com/json-iterator/go" ) const ( TokenURL = "https://aip.baidubce.com/oauth/2.0/token" APIURL = "http://vop.baidu.com/server_api" APIKey = "your_api_key" // 替换成你的API Key SecretKey = "your_secret_key" // 替换成你的Secret Key AudioFile = "audio.wav" // 替换成你的音频文件路径 DevUserID = "user01" // 替换成你的用户标识 ) type TokenResponse struct { AccessToken string `json:"access_token"` ExpiresIn int `json:"expires_in"` } type RecognitionResult struct { ErrNo int `json:"err_no"` ErrMsg string `json:"err_msg"` Result []string `json:"result"` } func main() { accessToken := getAccessToken() audioData, err := ioutil.ReadFile(AudioFile) if err != nil { fmt.Printf("读取音频文件失败:%s ", err.Error()) os.Exit(1) } boundary := "12345678901234567890" body := fmt.Sprintf("--%s Content-Disposition: form-data; name="dev_pid" 1537 --%s Content-Disposition: form-data; name="format" wav --%s Content-Disposition: form-data; name="channel" 1 --%s Content-Disposition: form-data; name="token" %s --%s Content-Disposition: form-data; name="cuid" %s --%s Content-Disposition: form-data; name="len" %d --%s Content-Disposition: form-data; name="speech"; filename="%s" Content-Type: application/octet-stream %s --%s--", boundary, boundary, boundary, boundary, accessToken, boundary, DevUserID, boundary, len(audioData), AudioFile, audioData, boundary) resp, err := resty.New().R(). SetHeader("Content-Type", "multipart/form-data; boundary="+boundary). SetBody(body). Post(APIURL) if err != nil { fmt.Printf("请求百度AI接口失败:%s ", err.Error()) os.Exit(1) } result := RecognitionResult{} if err := jsoniter.Unmarshal(resp.Body(), &result); err != nil { fmt.Printf("解析返回结果失败:%s ", err.Error()) os.Exit(1) } if result.ErrNo != 0 { fmt.Printf("识别失败:%s ", result.ErrMsg) } else { text := strings.Join(result.Result, "") fmt.Printf("识别结果:%s ", text) } } func getAccessToken() string { resp, err := resty.New().R(). SetQueryParams(map[string]string{ "grant_type": "client_credentials", "client_id": APIKey, "client_secret": SecretKey, }). Get(TokenURL) if err != nil { fmt.Printf("获取百度AI接口Token失败:%s ", err.Error()) os.Exit(1) } token := TokenResponse{} if err := jsoniter.Unmarshal(resp.Body(), &token); err != nil { fmt.Printf("解析Token失败:%s ", err.Error()) os.Exit(1) } return token.AccessToken }
go build speech_recognition.go ./speech_recognition
概要: この記事では、Golang を使用して Baidu AI インターフェイスに簡単に接続して音声認識を実現する方法を紹介し、対応するコード例を示します。このスキルを習得することで、Golang 開発者は Baidu AI インターフェイスを使用して、より柔軟かつ便利に音声認識アプリケーションを開発できるようになります。この記事が Golang 開発者に音声認識機能を実装する際の助けとインスピレーションを提供できれば幸いです。
以上がGolang 開発者にとって必須のスキル: Baidu AI インターフェイスに簡単に接続して音声認識を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。