Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kemahiran penting untuk pembangun Golang: Sambungkan ke antara muka AI Baidu dengan mudah untuk mencapai pengecaman pertuturan

Kemahiran penting untuk pembangun Golang: Sambungkan ke antara muka AI Baidu dengan mudah untuk mencapai pengecaman pertuturan

WBOY
WBOYasal
2023-08-12 15:21:03711semak imbas

Kemahiran penting untuk pembangun Golang: Sambungkan ke antara muka AI Baidu dengan mudah untuk mencapai pengecaman pertuturan

Kemahiran penting untuk pembangun Golang: Sambungkan dengan mudah ke antara muka AI Baidu untuk mencapai pengecaman pertuturan

Pengenalan: Dengan perkembangan pesat kecerdasan buatan, teknologi pengecaman pertuturan secara beransur-ansur menembusi kehidupan kita dan menjadi asas untuk komunikasi harian kita dan interaksi Salah satu cara yang penting. Sebagai pembangun Golang, mengetahui cara menyambung ke antara muka AI Baidu untuk pengecaman pertuturan akan menambahkan banyak kemudahan kepada pembangunan aplikasi kami. Artikel ini akan membawa pembaca memahami cara menggunakan Golang untuk menyambung dengan mudah ke antara muka AI Baidu untuk mencapai pengecaman pertuturan dan melampirkan contoh kod.

  1. Daftar akaun pembangun Baidu AI
    Sebelum kita mula, kita perlu mendaftar akaun pembangun Baidu AI. Pada platform terbuka Baidu AI (https://ai.baidu.com/), klik butang "Daftar Sekarang", isi maklumat yang berkaitan dan berjaya mendaftar akaun. Selepas log masuk, buat aplikasi dalam "Console" dan dapatkan Kunci API dan Kunci Rahsia.
  2. Pasang persekitaran pembangunan Golang
    Pastikan persekitaran pembangunan Golang telah dipasang dan dikonfigurasikan dengan betul. Anda boleh memuat turun pakej pemasangan yang sesuai untuk sistem pengendalian anda dari tapak web rasmi (https://golang.org/dl/), dan kemudian pasang dan konfigurasikannya mengikut dokumentasi rasmi.
  3. Pasang pakej pergantungan yang diperlukan
    Sebelum kami mula menulis kod, kami perlu memasang beberapa pakej pergantungan yang diperlukan untuk memudahkan permintaan HTTP dan penghuraian JSON kami. Buka terminal atau alat baris arahan dan gunakan arahan berikut untuk memasang:
go get -u github.com/go-resty/resty/v2
go get -u github.com/json-iterator/go
  1. Tulis kod untuk melaksanakan fungsi pengecaman pertuturan
    Pertama, kita perlu mencipta fail Go, contohnya speech_recognition.go, tulis kod berikut dalam fail :
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. Ganti parameter Konfigurasi
    Dalam kod, kami perlu menggantikannya dengan Kunci API, Kunci Rahsia, laluan fail audio dan ID pengguna kami sendiri. Kunci API dan Kunci Rahsia boleh didapati dalam aplikasi yang dibuat pada konsol Baidu AI. Laluan fail audio ialah laluan fail audio yang akan dikenali. ID pengguna ialah rentetan tersuai yang digunakan untuk membezakan pengguna yang berbeza.
  2. Kompil dan jalankan kod
    Selepas anda selesai menulis kod, gunakan arahan berikut untuk menyusun dan menjalankan:
go build speech_recognition.go
./speech_recognition
  1. Pengesahan keputusan
    Selepas menjalankan program, jika semuanya normal, anda akan dapat melihat pengecaman hasil output oleh konsol. Jika pengecaman gagal, semak sama ada parameter konfigurasi adalah betul dan sama ada fail audio wujud.

Ringkasan: Artikel ini memperkenalkan cara menggunakan Golang untuk menyambung dengan mudah ke antara muka AI Baidu untuk mencapai pengecaman pertuturan dan menyediakan contoh kod yang sepadan. Dengan menguasai kemahiran ini, pembangun Golang boleh menggunakan antara muka AI Baidu untuk membangunkan aplikasi pengecaman pertuturan dengan lebih fleksibel dan mudah. Saya berharap artikel ini dapat memberikan sedikit bantuan dan inspirasi kepada pembangun Golang dalam melaksanakan fungsi pengecaman pertuturan.

Atas ialah kandungan terperinci Kemahiran penting untuk pembangun Golang: Sambungkan ke antara muka AI Baidu dengan mudah untuk mencapai pengecaman pertuturan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn