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 numpy as np
|
||||||
import wave
|
import wave
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
|
import time
|
||||||
|
|
||||||
# Setup device
|
# Setup device
|
||||||
device = "cuda:0" if torch.cuda.is_available() else "cpu"
|
device = "cuda:0" if torch.cuda.is_available() else "cpu"
|
||||||
@ -32,13 +33,15 @@ pipe = pipeline(
|
|||||||
SAMPLE_RATE = 16000 # Whisper prefers 16 kHz
|
SAMPLE_RATE = 16000 # Whisper prefers 16 kHz
|
||||||
FILENAME = "recorded_audio.wav"
|
FILENAME = "recorded_audio.wav"
|
||||||
is_recording = False
|
is_recording = False
|
||||||
|
start_time = None # Track the recording start time
|
||||||
recorded_audio = None
|
recorded_audio = None
|
||||||
|
|
||||||
|
|
||||||
def start_recording():
|
def start_recording():
|
||||||
"""Starts recording audio."""
|
"""Starts recording audio."""
|
||||||
global is_recording, recorded_audio
|
global is_recording, recorded_audio, start_time
|
||||||
is_recording = True
|
is_recording = True
|
||||||
|
start_time = time.time() # Record the start time
|
||||||
print("Recording started...")
|
print("Recording started...")
|
||||||
recorded_audio = sd.rec(int(SAMPLE_RATE * 60), samplerate=SAMPLE_RATE, channels=1, dtype=np.float32)
|
recorded_audio = sd.rec(int(SAMPLE_RATE * 60), samplerate=SAMPLE_RATE, channels=1, dtype=np.float32)
|
||||||
return "Recording... Click 'Stop Recording' to finish."
|
return "Recording... Click 'Stop Recording' to finish."
|
||||||
@ -46,13 +49,14 @@ def start_recording():
|
|||||||
|
|
||||||
def stop_recording():
|
def stop_recording():
|
||||||
"""Stops recording audio and saves it."""
|
"""Stops recording audio and saves it."""
|
||||||
global is_recording, recorded_audio
|
global is_recording, recorded_audio, start_time
|
||||||
if not is_recording:
|
if not is_recording:
|
||||||
return "Not recording!"
|
return "Not recording!"
|
||||||
sd.stop()
|
sd.stop()
|
||||||
is_recording = False
|
is_recording = False
|
||||||
print("Recording stopped.")
|
elapsed_time = time.time() - start_time # Calculate elapsed time
|
||||||
save_audio_to_wav(recorded_audio, FILENAME)
|
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."
|
return "Recording stopped. Click 'Transcribe' to see the result."
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user