# utils.py import sounddevice as sd from scipy.io.wavfile import write import tempfile import os import whisper import json def record_audio(duration=5, fs=44100): stt_file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav") recording = sd.rec(int(duration * fs), samplerate=fs, channels=1) sd.wait() write(stt_file.name, fs, recording) return stt_file.name def transcribe_audio(audio_path, language="English"): model = whisper.load_model("base") result = model.transcribe(audio_path, language=language.lower()) return result['text'] def save_audio_file(uploaded_file, filename): path = os.path.join("audio", filename) os.makedirs("audio", exist_ok=True) with open(path, "wb") as f: f.write(uploaded_file.read()) return path def save_chat_history(history, filename="chat_history.json"): os.makedirs("history", exist_ok=True) with open(os.path.join("history", filename), "w") as f: json.dump(history, f, indent=4)