как читать данные mp3 из облака Google с помощью Python - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь прочитать данные в формате mp3 / wav из облака Google и пытаюсь внедрить метод аудио-диаризации.Проблема в том, что я не могу прочитать результат, который был передан google api в ответе переменной.

ниже - мой код Python

speech_file = r'gs://pp003231/a4a.wav'
config = speech.types.RecognitionConfig(
    encoding=speech.enums.RecognitionConfig.AudioEncoding.LINEAR16,
    language_code='en-US',
    enable_speaker_diarization=True,
    diarization_speaker_count=2)
audio = speech.types.RecognitionAudio(uri=speech_file)
response = client.long_running_recognize(config, audio)
print response
result = response.results[-1]
print result

Вывод на консоль - Traceback (последнийпоследний вызов): файл «a1.py», строка 131, в print response.results AttributeError: у объекта «Операция» нет атрибута «результаты»

Можете ли вы поделиться своим экспертным советом о том, что я делаю неправильно?Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 27 ноября 2018

У вас есть доступ к wav-файлу в вашем ведре?Кроме того, это весь код?Кажется, что sample_rate_hertz и импорт отсутствуют.Здесь у вас есть код, скопированный / вставленный из примеров Google docs, но я отредактировал его, чтобы иметь только функцию диаризации.

#!/usr/bin/env python
"""Google Cloud Speech API sample that demonstrates enhanced models
and recognition metadata.
Example usage:
    python diarization.py
"""

import argparse
import io



def transcribe_file_with_diarization():
    """Transcribe the given audio file synchronously with diarization."""
    # [START speech_transcribe_diarization_beta]
    from google.cloud import speech_v1p1beta1 as speech
    client = speech.SpeechClient()



    audio = speech.types.RecognitionAudio(uri="gs://<YOUR_BUCKET/<YOUR_WAV_FILE>")

    config = speech.types.RecognitionConfig(
        encoding=speech.enums.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=8000,
        language_code='en-US',
        enable_speaker_diarization=True,
        diarization_speaker_count=2)

    print('Waiting for operation to complete...')
    response = client.recognize(config, audio)

    # The transcript within each result is separate and sequential per result.
    # However, the words list within an alternative includes all the words
    # from all the results thus far. Thus, to get all the words with speaker
    # tags, you only have to take the words list from the last result:
    result = response.results[-1]

    words_info = result.alternatives[0].words

    # Printing out the output:
    for word_info in words_info:
        print("word: '{}', speaker_tag: {}".format(word_info.word,
                                                   word_info.speaker_tag))
    # [END speech_transcribe_diarization_beta]



if __name__ == '__main__':

    transcribe_file_with_diarization()

Чтобы запустить код, просто назовите его diarization.py и используйте команду:

python diarization.py

Кроме того, вам необходимо установить последнюю библиотеку google-cloud-speech:

pip install --upgrade google-cloud-speech

И вам нужно иметь учетные данные своей учетной записи службы в файле json, вы можетепроверить больше информации здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...