File size: 1,243 Bytes
53149f2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import streamlit as st
import sounddevice as sd
import tempfile
from scipy.io.wavfile import write
import whisper
import numpy as np
if 'recording' not in st.session_state:
    st.session_state.recording = False

def start_recording():
    st.session_state.recording = True
    st.write("Recording started... Click 'Stop' to end.")
    return sd.rec(int(10 * 44100), samplerate=44100, channels=1, dtype='float64', blocking=False)

def stop_recording(recording):
    st.session_state.recording = False
    sd.stop()
    st.write("Converting speech to text...")
    temp_file = tempfile.NamedTemporaryFile(delete=False, suffix='.wav')
    write(temp_file.name, 44100, recording)
    return temp_file.name

def transcribe_audio(file_path):
    model = whisper.load_model("base")
    result = model.transcribe(file_path)
    return result['text']

# Streamlit UI
st.title("🗣️Brise")

if st.button('Start Recording') and not st.session_state.recording:
    st.session_state.audio_data = start_recording()

if st.button('Stop Recording') and st.session_state.recording:
    file_path = stop_recording(st.session_state.audio_data)
    transcription = transcribe_audio(file_path)
    st.text_area("Transcription", value=transcription, height=200)