Intento conectarme al modelo y pasar los chunks y recibir las transcripciones (no funciona)
This commit is contained in:
53
stt_recorder/transcriber.py
Normal file
53
stt_recorder/transcriber.py
Normal file
@ -0,0 +1,53 @@
|
||||
import sys, json, base64
|
||||
import numpy as np
|
||||
import traceback
|
||||
|
||||
def main():
|
||||
from RealtimeSTT import AudioToTextRecorder
|
||||
from scipy.signal import resample
|
||||
import websockets
|
||||
import threading
|
||||
import logging
|
||||
import wave
|
||||
import json
|
||||
import time
|
||||
|
||||
# Inicializá el modelo (usa tu clase personalizada)
|
||||
model = AudioToTextRecorder(
|
||||
model="base",
|
||||
compute_type="int8",
|
||||
language="es"
|
||||
)
|
||||
|
||||
print(json.dumps({"type": "log", "msg": "✅ Worker iniciado con modelo Whisper"}), flush=True)
|
||||
|
||||
for line in sys.stdin:
|
||||
try:
|
||||
request = json.loads(line.strip())
|
||||
if request["event"] == "transcribe":
|
||||
sample_rate = request.get("sample_rate", 16000)
|
||||
audio_data = base64.b64decode(request["audio_base64"])
|
||||
|
||||
audio_float32 = (
|
||||
np.frombuffer(audio_data, dtype=np.int16).astype(np.float32) / 32768.0
|
||||
)
|
||||
|
||||
segments, _ = model.transcribe(audio_float32, sample_rate=sample_rate)
|
||||
text = " ".join([s.text for s in segments if s.text.strip()])
|
||||
print(json.dumps({"type": "realtime", "text": text}), flush=True)
|
||||
elif request["event"] == "set_param":
|
||||
setattr(model, request["param"], request["value"])
|
||||
print(json.dumps({"type": "log", "msg": f"Set {request['param']} to {request['value']}"}), flush=True)
|
||||
|
||||
else:
|
||||
print(json.dumps({"type": "log", "msg": f"Evento desconocido: {request.get('event')}"}), flush=True)
|
||||
|
||||
except Exception as e:
|
||||
print(json.dumps({
|
||||
"type": "error",
|
||||
"error": str(e),
|
||||
"trace": traceback.format_exc()
|
||||
}), flush=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user