File size: 1,260 Bytes
a8aa0ce
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from flask import Flask, request, jsonify
from transformers import pipeline
import torch


app = Flask(__name__)

def init_transcription_pipeline():
    device = "cuda:0" if torch.cuda.is_available() else "cpu"
    model_path = "c:/Users/vhits/Documents/Speect2Text/model/whisper-gujarati-medium"
    transcribe_pipeline = pipeline(
        task = "automatic-speech-recognition",
        model = model_path,
        chunk_length_s = 30,
        device = device
    )
    transcribe_pipeline.model.config.forced_decoder_ids = transcribe_pipeline.tokenizer.get_decoder_prompt_ids(language="gu", task="transcribe")
    return transcribe_pipeline

transcribe_pipeline = init_transcription_pipeline()

@app.route('/transcribe', methods=['POST'])
def transcribe_audio():
    if 'audio_file' not in request.files:
        return jsonify({"error": "No file part"}), 400
    file = request.files['audio_file']
    if file.filename == '':
        return jsonify({"error": "No selected file"}), 400
    if file:
        transcription_result = transcribe_pipeline(file)["text"]
        return jsonify({"transcription": transcription_result})

    return jsonify({"error": "An error occurred during transcription"}), 500

if __name__ == '__main__':
    app.run(debug=True)