|
|
|
@@ -17,14 +17,18 @@ def main(): |
|
|
|
node = Node() |
|
|
|
|
|
|
|
always_none = node.next(timeout=0.001) is None |
|
|
|
finished = False |
|
|
|
|
|
|
|
# pylint: disable=unused-argument |
|
|
|
def callback(indata, frames, time, status): |
|
|
|
nonlocal buffer, node, start_recording_time |
|
|
|
nonlocal buffer, node, start_recording_time, finished |
|
|
|
|
|
|
|
if tm.time() - start_recording_time > MAX_DURATION: |
|
|
|
audio_data = np.array(buffer).ravel().astype(np.float32) / 32768.0 |
|
|
|
node.send_output("audio", pa.array(audio_data)) |
|
|
|
if not always_none: |
|
|
|
event = node.next(timeout=0.001) |
|
|
|
finished = event is None |
|
|
|
buffer = [] |
|
|
|
start_recording_time = tm.time() |
|
|
|
else: |
|
|
|
@@ -34,10 +38,5 @@ def main(): |
|
|
|
with sd.InputStream( |
|
|
|
callback=callback, dtype=np.int16, channels=1, samplerate=SAMPLE_RATE |
|
|
|
): |
|
|
|
event_stream_is_none = False |
|
|
|
while not event_stream_is_none: |
|
|
|
if not always_none: |
|
|
|
event = node.next() |
|
|
|
event_stream_is_none = event is None |
|
|
|
else: |
|
|
|
sd.sleep(int(1000)) |
|
|
|
while not finished: |
|
|
|
sd.sleep(int(1000)) |