Я уверен, что это простое исправление, но я не могу понять это.Я транскрибирую аудио с помощью клиентской библиотеки Python Google Cloud Speech to Text.Все работает как задумано, когда я просто печатаю вывод.Однако, когда я пытаюсь сохранить этот вывод в файл, я получаю пустой файл 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.Любая помощь будет очень высоко ценится.Заранее спасибо!