我确定这是一个简单的修复程序,但是我似乎无法弄清楚。我正在使用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版本。任何帮助将不胜感激。预先感谢!