首页 > 解决方案 > Google 语音转文本 API 不返回任何内容,甚至不返回错误

问题描述

我试图从一个随机的 youtube 视频中获取文本只是为了试用 API,但它没有返回任何内容。使用此存储库中的示例文件“audio.raw”时,它确实有效。 https://github.com/GoogleCloudPlatform/golang-samples/tree/master/speech/testdata

我正在使用的 youtube 视频:https ://www.youtube.com/watch?v= liAsT4DqalQ 英文很清晰,我在本地拥有的音频版本很清晰。该文件的类型是 webm 也许这就是问题所在,我尝试使用 m4a 文件但没有运气:x

我的代码就像 async simple 中的代码一样,真正奇怪的部分是我没有收到任何错误...

package main

import (
    "context"
    "fmt"
    "log"

    speech "cloud.google.com/go/speech/apiv1"
    speechpb "google.golang.org/genproto/googleapis/cloud/speech/v1"
)

func main() {
    ctx := context.Background()
    client, err := speech.NewClient(ctx)
    if err != nil {
        log.Fatal(err)
    }

    req := &speechpb.LongRunningRecognizeRequest{
        Config: &speechpb.RecognitionConfig{
            Encoding:        speechpb.RecognitionConfig_LINEAR16,
            SampleRateHertz: 16000,
            LanguageCode:    "en-US",
        },
        Audio: &speechpb.RecognitionAudio{
            AudioSource: &speechpb.RecognitionAudio_Uri{Uri: "gs://BUCKET_NAME/eng.webm"},
        },
    }

    op, err := client.LongRunningRecognize(ctx, req)
    if err != nil {
        panic(err)
    }
    resp, err := op.Wait(ctx)
    if err != nil {
        panic(err)
    }

    // Print the results.
    for _, result := range resp.Results {
        for _, alt := range result.Alternatives {
            fmt.Printf("\"%v\" (confidence=%3f)\n", alt.Transcript, alt.Confidence)
        }
    }
}

标签: google-apispeech-recognitiongoogle-speech-to-text-api

解决方案


好吧,通过切换到 aws 使它工作


推荐阅读