Проблемы с облачным API преобразования речи в текст Google

#python #api #google-cloud-platform #speech-recognition #speech-to-text

#python #API #google-облачная платформа #распознавание речи #преобразование речи в текст

Вопрос:

Я пытаюсь расшифровать немецкий подкаст, который у меня есть как на моем ПК, так и на моем хранилище Google. Я использую этот учебник в качестве справочного материала.

Вот мой код:

 frame_rate, channels = frame_rate_channel('pod.wav')
gcs_uri = 'gs://callsaudiofiles21/pod.wav'

client = speech.SpeechClient()
audio = types.RecognitionAudio(uri=gcs_uri)

config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz=frame_rate,
language_code='de-DE')

transcript = ''

operation = client.long_running_recognize(config, audio)
response = operation.result(timeout=10000)

for result in response.results:
    transcript  = result.alternatives[0].transcript
  

Но он останавливается на operation строке вывода TypeError: long_running_recognize() takes from 1 to 2 positional arguments but 3 were given . Учебник написан год назад, так что с тех пор в API что-то должно было измениться. Я не уверен, что нужно изменить.

Ответ №1:

Похоже, вы используете старую версию библиотеки.

Из примера асинхронного распознавания Google эти два варианта кажутся эквивалентными:

     operation = client.long_running_recognize(
        request={"config": config, "audio": audio}
    )

  

или

     operation = client.long_running_recognize(config=config, audio=audio)
  

КСТАТИ, взгляните также на официальную кодовую лабораторию Google для преобразования речи в текст — у них всегда есть актуальные примеры.

Ответ №2:

Вы пробовали это:

 operation = client.long_running_recognize(
        request={"config": config, "audio": audio}
    )