Как зарегистрировать нажатие клавиш во время воспроизведения аудиофайла с python - PullRequest
0 голосов
/ 09 апреля 2020

Я пишу небольшую программу для расшифровки интервью. Идея заключается в том, что аудиофайл разбивается на несколько семплов определенной длины. Эти сэмплы затем воспроизводятся один за другим, в результате чего первый сэмпл повторяется до тех пор, пока транскрибер не нажмет клавишу для перехода к следующему сэмплу и т. Д.

Проблема заключается в том, что мне нужно найти способ регистрации нажатия клавиш во время воспроизведения сэмпла. Это позволило бы мне реализовать паузу и продвижение.

Я уже изучал использование pygame для этого, но в pygame мне было трудно разделить образец. Насколько я понимаю, Pydub делает это более элегантно.

Вот часть (соответствующего) кода того, что я пытаюсь выполнить sh.

import time
from pydub import AudioSegment
from pydub.playback import play

steplength = 5000 # length of each part to repeat
pause = 1000 # pause between repeats

interview = AudioSegment.from_mp3("interview.mp3")
length = len(interview)
nsteps = length // steplength + 1

step = 0
while step < nsteps:

    starttime = step * steplength
    endtime = (step+1) * steplength

    try:
        while True:
            play(interview[starttime:endtime])
            time.sleep(pause)
    except KeyboardInterrupt:
        step += 1
        continue

Использование KeyboardInterrupt хак, я могу перейти к следующему примеру, но это ограничено 1 действием (продвижением), а также не очень хорошим способом сделать то, что я хочу.

Пожалуйста, прости мое невежество. Я просто вхожу в чудесный мир Python.

...