Как перебрать аудиофайл с интервалом в 20 секунд? - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь расшифровать аудиофайл длительностью около 3 минут, используя SpeechRecognition, однако кажется, что он не может расшифровать что-либо более 20 секунд.Это код, который я использую:

r = sr.Recognizer()

audio = FLAC(output_name +'.' + output_format)
audio_length = audio.info.length

file = sr.AudioFile(output_name +'.' + output_format)

with file as source:
    audio = r.record(source, duration = 20)

google = r.recognize_google(audio, language = 'ru-RU' )
print(google)

Как я могу зациклить это так, чтобы он транскрибировал 0 с - 20 с, затем 20 с - 40 с и т. Д., Пока аудиофайл не закончится?

Я бы не хотел разбивать файл на отдельные файлы длиной 20 с.

1 Ответ

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

Так что я понял это.Мне плохо, что я недостаточно внимательно изучил документацию модуля SpeechRecognition, но у них есть параметр offset!

count = 0
for audio_path in audio_files:
     audio = FLAC(audio_list[count] + '.' + output_format) #specify audio file for length calculation
     audio_length = audio.info.length #get length of audio file

     #n.b. mutagen module used for calculating audio length

     number_of_iterations = int(audio_length/20)

    if number_of_iterations == 0:
        number_of_iterations = 1

     file = sr.AudioFile(audio_list[count] + '.' + output_format)


    for i in range(number_of_iterations):
        with file as source:
            audio = r.record(source, offset = i*20, duration = 20)

         google = r.recognize_google(audio, language = 'ru-RU' )
         count = count + 1
         print(google)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...