Как преобразовать длинную речь в текст. Google асинхронное распознавание речи в Python - PullRequest
0 голосов
/ 08 апреля 2020

Кто-нибудь знает, как преобразовать длинную речь в формате wav или MP3 в текст, используя Google speech to text asyncronous API? Я использую код ниже, но я всегда получаю ошибку при поиске функции upload_blob ().

Заранее спасибо.

from pydub import AudioSegment
import io
import os
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
import wave
from google.cloud import storage

filepath = "/home/marte/Documentos/Python_Scripts/Law/" 
output_filepath = "/home/marte/Documentos/Python_Scripts/Law/" 
bucketname = "callsaudiofiles" 
def frame_rate_channel(audio_file_name):
    with wave.open(audio_file_name, "rb") as wave_file:
        frame_rate = wave_file.getframerate()
        channels = wave_file.getnchannels()
        return frame_rate,channels
def google_transcribe(audio_file_name):
    file_name = filepath + audio_file_name 
    frame_rate, channels = frame_rate_channel(audio_file_name)
    bucket_name = bucketname
    source_file_name = filepath + audio_file_name
    destination_blob_name = audio_file_name
    upload_blob(bucket_name, source_file_name, destination_blob_name)
    gcs_uri = 'gs://' + bucketname + '/' + audio_file_name
    transcript = ''
    client = speech.SpeechClient()
    audio = types.RecognitionAudio(uri=gcs_uri)
    config = types.RecognitionConfig(
    encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
    sample_rate_hertz=frame_rate,
    language_code='es-CO')
    operation = client.long_running_recognize(config, audio)
    response = operation.result(timeout=10000)
    for result in response.results:
        transcript += result.alternatives[0].transcript
    delete_blob(bucket_name, destination_blob_name)
    return transcript
def write_transcripts(transcript_filename,transcript):
    f= open(output_filepath + transcript_filename,"w+")
    f.write(transcript)
    f.close()
sentencia = google_transcribe("onu-santos.wav")
write_transcripts("onu-santos.txt",sentencia)

1 Ответ

0 голосов
/ 16 апреля 2020

Мне, наконец, удалось решить проблему, установив новый «сегмент» в моей учетной записи Google Cloud Storage и установив учетные данные в качестве локальной переменной следующим образом:

 export GOOGLE_APPLICATION_CREDENTIALS='/home/marte/Documentos/Python_Scripts/Speech/sequoia-31501208ed06.json'

Эта ссылка была полезной: https://cloud.google.com/docs/authentication/getting-started

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