ホームページ  >  記事  >  バックエンド開発  >  Golang 開発者にとって必須のスキル: Baidu AI インターフェイスに簡単に接続して音声認識を実現する

Golang 開発者にとって必須のスキル: Baidu AI インターフェイスに簡単に接続して音声認識を実現する

WBOY
WBOYオリジナル
2023-08-12 15:21:03654ブラウズ

Golang 開発者にとって必須のスキル: Baidu AI インターフェイスに簡単に接続して音声認識を実現する

Golang 開発者に必須のスキル: Baidu AI インターフェイスに簡単に接続して音声認識を実現

はじめに: 人工知能の急速な発展により、音声認識技術は徐々に私たちの生活に浸透し、日常のコミュニケーションや交流の重要な方法の 1 つになりました。 Golang 開発者として、音声認識のために Baidu AI インターフェイスに接続する方法を知っておくと、アプリケーション開発がさらに便利になります。この記事では、Golang を使用して Baidu AI インターフェイスに簡単に接続して音声認識を実現する方法を読者に理解してもらい、コード例を添付します。

  1. Baidu AI 開発者アカウントを登録する
    始める前に、Baidu AI 開発者アカウントを登録する必要があります。 Baidu AI オープン プラットフォーム (https://ai.baidu.com/) で、[今すぐ登録] ボタンをクリックし、関連情報を入力してアカウントを登録します。ログイン後、「コンソール」でアプリケーションを作成し、APIキーとシークレットキーを取得します。
  2. Golang 開発環境をインストールする
    Golang 開発環境がインストールされ、正しく構成されていることを確認してください。公式 Web サイト (https://golang.org/dl/) からオペレーティング システムに適したインストール パッケージをダウンロードし、公式ドキュメントに従ってインストールおよび設定できます。
  3. 必要な依存関係パッケージをインストールする
    コードを書き始める前に、HTTP リクエストと JSON 解析を容易にするために必要な依存関係パッケージをいくつかインストールする必要があります。ターミナルまたはコマンド ライン ツールを開き、次のコマンドを使用してインストールします。
go get -u github.com/go-resty/resty/v2
go get -u github.com/json-iterator/go
  1. 音声認識機能を実装するコードを記述します
    まず、次のような 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
}
  1. 構成パラメータを置き換える
    コード内で、独自の API に置き換える必要があります。キー、秘密キー、オーディオ ファイルのパスとユーザー ID。 API キーと秘密キーは、Baidu AI コンソールで作成されたアプリケーションで確認できます。音声ファイルパスは、認識する音声ファイルのパスです。ユーザー ID は、さまざまなユーザーを区別するために使用されるカスタム文字列です。
  2. コードをコンパイルして実行する
    コードの作成が完了したら、次のコマンドを使用してコンパイルして実行します。
go build speech_recognition.go
./speech_recognition
  1. 結果の検証
    実行後通常、コンソールが出力する認識結果を確認できます。認識に失敗した場合は、設定パラメータが正しいかどうか、音声ファイルが存在するかどうかを確認してください。

概要: この記事では、Golang を使用して Baidu AI インターフェイスに簡単に接続して音声認識を実現する方法を紹介し、対応するコード例を示します。このスキルを習得することで、Golang 開発者は Baidu AI インターフェイスを使用して、より柔軟かつ便利に音声認識アプリケーションを開発できるようになります。この記事が Golang 開発者に音声認識機能を実装する際の助けとインスピレーションを提供できれば幸いです。

以上がGolang 開発者にとって必須のスキル: Baidu AI インターフェイスに簡単に接続して音声認識を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。