Я хочу, чтобы аудио файлы конвертировались в текст. Для этого я использую библиотеку 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