Intento conectarme al modelo y pasar los chunks y recibir las transcripciones (no funciona)

This commit is contained in:
2025-06-17 16:46:04 -03:00
parent 07526dcccf
commit ba9ecfcff4
5 changed files with 133 additions and 2 deletions

View 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()