import sounddevice as sd
import openai
import numpy as np
import os

# OpenAI Whisper API key
openai.api_key = "your_openai_api_key"

# Transcription function
def transcribe_audio(audio_data):
    response = openai.Audio.transcribe(
        model="whisper-1",
        file=audio_data
    )
    return response['text']

# Stream audio and process in real-time
def audio_stream_callback(indata, frames, time, status):
    if status:
        print(f"Stream Status: {status}")
    # Convert audio to bytes
    audio_bytes = np.array(indata, dtype=np.float32).tobytes()
    # Save to temp file
    with open("temp_audio.wav", "wb") as f:
        f.write(audio_bytes)
    # Transcribe
    transcription = transcribe_audio("temp_audio.wav")
    print(f"Transcription: {transcription}")

# Start capturing audio
def start_audio_stream():
    stream = sd.InputStream(
        samplerate=16000,
        channels=1,
        callback=audio_stream_callback
    )
    with stream:
        print("Streaming audio...")
        sd.sleep(60000)  # Stream for 1 minute

if __name__ == "__main__":
    start_audio_stream()

