保存到文件时,Google云语音对文本的响应为空

时间:2019-06-05 17:02:38

标签: python-3.6 google-cloud-speech

我确定这是一个简单的修复程序,但是我似乎无法弄清楚。我正在使用Google Cloud Speech to Text python客户端库转录音频。当我只打印输出时,一切都按预期工作。但是,当我尝试将此输出保存到文件时,我得到一个0字节的空白文件。这是我的代码。

import os
import json
import io


def transcribe_gcs(gcs_uri, filename):
      """Asynchronously transcribes the audio file specified. """
      from google.cloud import speech
      from google.cloud.speech import enums
      from google.cloud.speech import types
      client = speech.SpeechClient()



  audio = types.RecognitionAudio(uri=gcs_uri)
  config = types.RecognitionConfig(
      encoding=enums.RecognitionConfig.AudioEncoding.FLAC,
      sample_rate_hertz=44100,
      language_code='en-US',
      enable_automatic_punctuation=True)

  operation = client.long_running_recognize(config, audio)

  mdFile = filename + ".md"
  mdFilePath = "static/media/text/" + mdFile
  f = open(mdFilePath, 'a')

  print('Waiting for operation to complete...')
  response = operation.result(timeout=4000)

  for result in response.results:
      print(format(result.alternatives[0].transcript))

使用此选项时,它可以完美工作并将输出打印到屏幕上。但是,如果我将最后一行更改为此

print(format(result.alternatives[0].transcript),file=f)

f.write(format(result.alternatives[0].transcript))

我得到一个空文件。我的权限暂时设置为该文件和目录的777。我正在使用python 3.6.7版本。任何帮助将不胜感激。预先感谢!

0 个答案:

没有答案