Длинные аудиофайлы в тексте очень быстро за Python - PullRequest
1 голос
/ 04 апреля 2020

Я хочу, чтобы аудио файлы конвертировались в текст. Для этого я использую библиотеку speechrecognition , а затем использую облачную речь Google для преобразования текста в текст AP I. Я попытался сделать это, разделив аудио на куски. Однако это занимает больше времени, чем ожидалось. Для более длинных аудиофайлов , например, 60 минут, я хочу достичь результатов максимум за 5 минут . Есть ли способ сделать это. Пожалуйста, помогите мне. Вот мой код:

import speech_recognition as sr
from pydub import AudioSegment
from pydub.utils import make_chunks

myaudio = AudioSegment.from_file("testaudio.wav" , "wav") 
chunk_length_ms = 4000 # pydub calculates in millisec
chunks = make_chunks(myaudio, chunk_length_ms) #Make chunks of one sec

#Export all of the individual chunks as wav files

for i, chunk in enumerate(chunks):
    chunk_name = "chunk{0}.wav".format(i)
    print ("exporting", chunk_name)
    chunk.export(chunk_name, format="wav")

i=0
for chunk in chunks:
    print ("in chunks")
    chunk_silent = AudioSegment.silent(duration = 10)
    audio_chunk = chunk_silent + chunk + chunk_silent
    audio_chunk.export("./chunk{0}.wav".format(i), bitrate ='192k', format ="wav")
    filename = 'chunk'+str(i)+'.wav'
    print("Processing chunk "+str(i))
    file = filename
    r = sr.Recognizer()
    with sr.AudioFile(file) as source:
        #r.adjust_for_ambient_noise(source)
        audio_listened = r.listen(source)
    try:
        rec = r.recognize_google_cloud(audio_listened)
        print (rec)
    except:
        rec = r.recognize_google_cloud(audio_listened,show_all=True)
        print(rec,type(rec))

    i += 1

1 Ответ

1 голос
/ 05 апреля 2020

Если вы выполняете потоковую передачу звука во время записи с потоковым API, вы сразу получите результат.

В противном случае существуют пакеты с открытым исходным кодом, такие как vosk-api , которые могут быть в высокой степени параллельными, возможно, они могут Вы получите результаты в считанные секунды, если настроите их на большом кластере или на сервере с графическим процессором. Один сервер GPU может обрабатывать около 100 минут аудио в минуту.

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