working for snippeds < 1 min
This commit is contained in:
parent
cf935a16bc
commit
5ae6356c04
12
stt_test.py
12
stt_test.py
@ -4,6 +4,7 @@ import sounddevice as sd
|
||||
import numpy as np
|
||||
import wave
|
||||
import gradio as gr
|
||||
import time
|
||||
|
||||
# Setup device
|
||||
device = "cuda:0" if torch.cuda.is_available() else "cpu"
|
||||
@ -32,13 +33,15 @@ pipe = pipeline(
|
||||
SAMPLE_RATE = 16000 # Whisper prefers 16 kHz
|
||||
FILENAME = "recorded_audio.wav"
|
||||
is_recording = False
|
||||
start_time = None # Track the recording start time
|
||||
recorded_audio = None
|
||||
|
||||
|
||||
def start_recording():
|
||||
"""Starts recording audio."""
|
||||
global is_recording, recorded_audio
|
||||
global is_recording, recorded_audio, start_time
|
||||
is_recording = True
|
||||
start_time = time.time() # Record the start time
|
||||
print("Recording started...")
|
||||
recorded_audio = sd.rec(int(SAMPLE_RATE * 60), samplerate=SAMPLE_RATE, channels=1, dtype=np.float32)
|
||||
return "Recording... Click 'Stop Recording' to finish."
|
||||
@ -46,13 +49,14 @@ def start_recording():
|
||||
|
||||
def stop_recording():
|
||||
"""Stops recording audio and saves it."""
|
||||
global is_recording, recorded_audio
|
||||
global is_recording, recorded_audio, start_time
|
||||
if not is_recording:
|
||||
return "Not recording!"
|
||||
sd.stop()
|
||||
is_recording = False
|
||||
print("Recording stopped.")
|
||||
save_audio_to_wav(recorded_audio, FILENAME)
|
||||
elapsed_time = time.time() - start_time # Calculate elapsed time
|
||||
print(f"Recording stopped. Duration: {elapsed_time:.2f} seconds.")
|
||||
save_audio_to_wav(recorded_audio[:int(SAMPLE_RATE * elapsed_time)], FILENAME) # Truncate to actual duration
|
||||
return "Recording stopped. Click 'Transcribe' to see the result."
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user