google-cloud-speech транскрибирует только часть разговора в python - PullRequest
0 голосов
/ 16 июня 2020

Я следовал инструкциям в сети, создал код python, который расшифровывает длинные аудиофайлы с использованием локального файла. Когда я запускаю код для записей с телефона в формате mp3, он расшифровывает разделы разговора, но не все. И в зависимости от того, какую звуковую частоту я установил, он расшифровывает разные разделы.

Например, разговор, который должен быть таким: Привет, добрый день. Меня зовут ПУСТО Я из Суиндона ПУСТО. Меня попросили позвонить, чтобы убедиться, что вы по-прежнему являетесь владельцем ... Я, да, да

расшифровывается, когда sample_rate_hertz = 8000, как: Привет, меня зовут ПУСТО Я из Суиндона. ПУСТО. Меня спросили, да, да

и расшифровали, когда sample_rate_hertz = 10000, как: Привет, меня попросили позвонить, купить ПУСТОЙ Я просто удостоверяюсь, что вы все еще являетесь владельцем ... Я да, да

Мой код:

from google.cloud import speech_v1p1beta1
from google.cloud.speech_v1p1beta1 import enums
import io
import os


os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'key.json'


def sample_long_running_recognize(local_file_path):

    client = speech_v1p1beta1.SpeechClient()

    local_file_path = '/home/megan.stevens/PycharmProjects/Google/Convo.mp3'

    language_code = "en-gb"

    sample_rate_hertz = 8000

    encoding = enums.RecognitionConfig.AudioEncoding.MP3
    config = {
        "language_code": language_code,
        "sample_rate_hertz": sample_rate_hertz,
        "encoding": encoding,
        "model": 'phone_call',
        "enable_speaker_diarization": True,
        "diarization_speaker_count": 2,
        "enable_separate_recognition_per_channel": True,
        "audio_channel_count": 2,
    }

    with io.open(local_file_path, "rb") as f:
        content = f.read()
    audio = {"content": content}

    operation = client.long_running_recognize(config, audio)

    print(u"Waiting for operation to complete...")
    response = operation.result()

    for result in response.results:
        # First alternative is the most probable result
        alternative = result.alternatives[0]
        print(u"Transcript: {}".format(alternative.transcript))
        for word in alternative.words:
            print(u"Word: {}".format(word.word))
            print(u"Speaker tag: {}".format(word.speaker_tag))
sample_long_running_recognize("Convo.mp3")

И я пробовал запускать его с различными конфигурациями, чтобы получить практически тот же результат.

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