>  기사  >  백엔드 개발  >  Golang 개발자를 위한 필수 기술: Baidu AI 인터페이스에 쉽게 연결하여 음성 인식 달성

Golang 개발자를 위한 필수 기술: Baidu AI 인터페이스에 쉽게 연결하여 음성 인식 달성

WBOY
WBOY원래의
2023-08-12 15:21:03711검색

Golang 개발자를 위한 필수 기술: Baidu AI 인터페이스에 쉽게 연결하여 음성 인식 달성

Golang 개발자의 필수 기술: Baidu AI 인터페이스에 쉽게 연결하여 음성 인식 구현

소개: 인공 지능의 급속한 발전과 함께 음성 인식 기술은 점차 우리 삶에 침투하여 일상적인 의사소통과 소통의 기반이 되고 있습니다. 상호 작용 중요한 방법 중 하나입니다. Golang 개발자로서 음성 인식을 위해 Baidu AI 인터페이스에 연결하는 방법을 알면 애플리케이션 개발에 많은 편의성이 추가될 것입니다. 이 기사에서는 독자들이 Golang을 사용하여 Baidu AI 인터페이스에 쉽게 연결하여 음성 인식을 달성하는 방법을 이해하고 코드 예제를 첨부할 것입니다.

  1. 바이두 AI 개발자 계정 등록
    시작하기 전에 바이두 AI 개발자 계정을 등록해야 합니다. 바이두 AI 오픈 플랫폼(https://ai.baidu.com/)에서 '지금 등록' 버튼을 클릭하고 관련 정보를 입력한 후 성공적으로 계정 등록을 완료하세요. 로그인 후 "콘솔"에서 애플리케이션을 생성하고 API Key와 Secret Key를 획득하세요.
  2. Golang 개발 환경 설치
    Golang 개발 환경이 올바르게 설치 및 구성되었는지 확인하세요. 공식 홈페이지(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 Key와 Secret Key는 Baidu AI 콘솔에서 생성된 애플리케이션에서 확인할 수 있습니다. 오디오 파일 경로는 인식할 오디오 파일의 경로입니다. 사용자 ID는 다른 사용자를 구별하는 데 사용되는 사용자 정의 문자열입니다.
  2. 코드 컴파일 및 실행
    코드 작성을 마친 후 다음 명령을 사용하여 컴파일 및 실행합니다.
go build speech_recognition.go
./speech_recognition
  1. 결과 확인
    프로그램 실행 후 모든 것이 정상이면 인식을 볼 수 있습니다. 콘솔에서 출력되는 결과입니다. 인식에 실패하면 구성 매개변수가 올바른지, 오디오 파일이 있는지 확인하세요.

요약: 이 기사에서는 Golang을 사용하여 Baidu AI 인터페이스에 쉽게 연결하여 음성 인식을 달성하는 방법을 소개하고 해당 코드 예제를 제공합니다. 이 기술을 익히면 Golang 개발자는 Baidu AI 인터페이스를 사용하여 음성 인식 애플리케이션을 보다 유연하고 편리하게 개발할 수 있습니다. 이 기사가 Golang 개발자가 음성 인식 기능을 구현하는 데 도움과 영감을 줄 수 있기를 바랍니다.

위 내용은 Golang 개발자를 위한 필수 기술: Baidu AI 인터페이스에 쉽게 연결하여 음성 인식 달성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.