Как записать звук за определенное c времени до какого-либо действия (например, нажатие клавиатуры) в Python звуковом устройстве? - PullRequest
1 голос
/ 16 марта 2020

Я очень новичок в Python, поэтому у меня есть небольшой проект, чтобы узнать больше о Python, мой проект прост, просто запись звука использует sounddevice, но проблема в документальном фильме, это только запись, если есть stati c секунд, как пример кода кода ниже, и я понятия не имею, как остановить или приостановить запись, в моем случае, нажмите клавишу, например, «войти, чтобы остановить, перейти к паузе»

import sounddevice as sd
import soundfile as sf
import time
def sync_record(filename, duration, fs, channels):
   print('recording')
   myrecording = sd.rec(int(duration * fs), samplerate=fs, channels=channels)
   sd.wait()
   sf.write(filename, myrecording, fs)
   print('done recording')
# playback file
sync_record('sync_record.wav', 10, 16000, 1)

поэтому мой вопрос, как я могу сделать паузу и записать звук без какой-либо длительности, и как остановить и сделать паузу с использованием sounddevice, спасибо вам, ребята

1 Ответ

0 голосов
/ 16 марта 2020
print "* record until keypress"
from openexp.keyboard import keyboard
# Short timeout so get_key() doesn't block
my_keyboard = keyboard(exp, timeout=2)
all = []
while my_keyboard.get_key()[0] == None: # Loop until a key has been pressed
    data = stream.read(chunk) # Record data
    all.append(data) # Add the data to a buffer (a list of chunks)
print "* done recording"

Это показывает, как вы можете передавать данные до нажатия клавиши.

import keyboard
k = keyboard.read_key()  # in my python interpreter, this captures "enter up"
k = keyboard.read_key()  # so repeat the line if in the python interpreter

Используйте тот же лог c с вашим кодом. Так что запись останавливается, когда пользователь нажимает клавишу.

...