這個步調而言,今天就是Cloud Speech-to-Text API串接,前情提要一樣是要先建立project、Enable API、下載credential json之類的。忘了的人記得看第三天的文章。
好,現在要先來把test data抓下來,我們可以在google的github上找到很多檔案可以測試,我這邊抓的是audio.raw,並把它放到testdata/speech_to_text資料夾下。
萬事俱備就只欠東風,我們來看看demo code吧:
func DemoCode(filename string) {
  ctx := context.Background()
  // Creates a client.
  client, err := speech.NewClient(ctx)
  if err != nil {
    log.Fatalf("Failed to create client: %v", err)
  }
  // Reads the audio file into memory.
  data, err := ioutil.ReadFile(filename)
  if err != nil {
    log.Fatalf("Failed to read file: %v", err)
  }
  // Detects speech in the audio file.
  resp, err := client.Recognize(ctx, &speechpb.RecognizeRequest{
    Config: &speechpb.RecognitionConfig{
      Encoding:        speechpb.RecognitionConfig_LINEAR16,
      SampleRateHertz: 16000,
      LanguageCode:    "en-US",
    },
    Audio: &speechpb.RecognitionAudio{
      AudioSource: &speechpb.RecognitionAudio_Content{Content: data},
    },
  })
  if err != nil {
    log.Fatalf("failed to recognize: %v", err)
  }
  // Prints the results.
  for _, result := range resp.Results {
    for _, alt := range result.Alternatives {
      fmt.Printf("\"%v\" (confidence=%3f)\n", alt.Transcript, alt.Confidence)
    }
  }
}
在main.go裡面則僅只是呼叫speech_to_text.DemoCode("./testdata/speech_to_text/audio.raw"),接到了音檔以後,output就會吐出text給你看。
OK,今天的文章就到這邊,謝謝大家的觀看。
今天的code可以看github:https://github.com/josephMG/ithelp-2019/tree/Day-22