tudeplom commited on
Commit
7bcff4e
·
verified ·
1 Parent(s): 9346c67

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -10
app.py CHANGED
@@ -2,12 +2,10 @@ import os
2
  import json
3
  import numpy as np
4
  from vosk import Model, KaldiRecognizer
5
- from flask import Flask
6
- from flask_socketio import SocketIO, emit
7
 
8
- # Cấu hình Flask & WebSocket
9
  app = Flask(__name__)
10
- socketio = SocketIO(app, cors_allowed_origins="*")
11
 
12
  # Kiểm tra và load model Vosk
13
  MODEL_PATH = "model/vosk-model"
@@ -19,9 +17,10 @@ model = Model(MODEL_PATH)
19
  # Tạo bộ nhận diện giọng nói
20
  rec = KaldiRecognizer(model, 16000)
21
 
22
- # Xử dữ liệu âm thanh nhận từ client
23
- @socketio.on("audio_chunk")
24
- def handle_audio(audio_data):
 
25
  print(f"📩 Nhận dữ liệu âm thanh: {len(audio_data)} bytes")
26
 
27
  # Chuyển đổi dữ liệu âm thanh thành numpy array
@@ -32,8 +31,9 @@ def handle_audio(audio_data):
32
  result = json.loads(rec.Result())
33
  text = result.get("text", "")
34
  print(f"📤 Kết quả nhận diện: {text}")
35
- emit("stt_result", {"text": text}) # Gửi kết quả về client theo thời gian thực
 
 
36
 
37
- # Chạy Flask server
38
  if __name__ == "__main__":
39
- socketio.run(app, host="0.0.0.0", port=5000, debug=True, allow_unsafe_werkzeug=True)
 
2
  import json
3
  import numpy as np
4
  from vosk import Model, KaldiRecognizer
5
+ from flask import Flask, request, jsonify
 
6
 
7
+ # Cấu hình Flask
8
  app = Flask(__name__)
 
9
 
10
  # Kiểm tra và load model Vosk
11
  MODEL_PATH = "model/vosk-model"
 
17
  # Tạo bộ nhận diện giọng nói
18
  rec = KaldiRecognizer(model, 16000)
19
 
20
+ # API nhận dữ liệu âm thanh và trả kết quả nhận diện giọng nói
21
+ @app.route('/stt', methods=['POST'])
22
+ def handle_audio():
23
+ audio_data = request.data # Nhận dữ liệu âm thanh từ client
24
  print(f"📩 Nhận dữ liệu âm thanh: {len(audio_data)} bytes")
25
 
26
  # Chuyển đổi dữ liệu âm thanh thành numpy array
 
31
  result = json.loads(rec.Result())
32
  text = result.get("text", "")
33
  print(f"📤 Kết quả nhận diện: {text}")
34
+ return jsonify({"text": text}) # Gửi kết quả nhận diện về client
35
+ else:
36
+ return jsonify({"text": ""}) # Nếu không có kết quả nhận diện
37
 
 
38
  if __name__ == "__main__":
39
+ app.run(host="0.0.0.0", port=5000, debug=True)