File size: 1,192 Bytes
06abdb3
 
 
 
 
 
97e06f7
06abdb3
 
 
 
 
 
 
 
97e06f7
 
 
 
06abdb3
 
 
 
 
 
97e06f7
 
 
 
06abdb3
 
 
97e06f7
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
from flask import Flask, request, jsonify
import whisper
import os
from tempfile import NamedTemporaryFile

app = Flask(__name__)
model = whisper.load_model("base")  # Consider loading a smaller model if resource constraints apply

@app.route('/ask', methods=['POST'])
def ask():
    if 'file' not in request.files:
        return jsonify({'error': 'No file provided'}), 400
    
    file = request.files['file']
    
    # Ensure the file is an audio file (e.g., webm, mp3, wav)
    if not file.filename.lower().endswith(('.webm', '.mp3', '.wav')):
        return jsonify({'error': 'Unsupported file format'}), 400

    with NamedTemporaryFile(delete=False, suffix=".webm") as temp_audio:
        file.save(temp_audio.name)
        try:
            result = model.transcribe(temp_audio.name)
            question = result['text']
            # Dummy AI response for now
            response = {"transcription": question, "response": f"You said: {question}"}
            return jsonify(response)
        except Exception as e:
            return jsonify({'error': f'Processing failed: {str(e)}'}), 500
        finally:
            os.unlink(temp_audio.name)

# Remove app.run() for production