我试图从一个随机的 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)
}
}
}