Google 语音转文本 API 没有 return 任何东西甚至没有错误

Google speech to text API does not return anything not even an error

我试图从一个随机的 YouTube 视频中获取文本,只是为了尝试 API,但它没有 return 任何东西。使用此存储库中的示例文件 '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)
        }
    }
}

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