# # zyquo_transcribe.py # Zyquo MLX # # Author: Simon-Pierre Boucher # Mail: contact@spboucher.ai # # Speech-to-text driver over mlx-whisper (docs/MLX-RESEARCH.md ยง3.2). # JSON-lines protocol on stdout. # # Usage: zyquo_transcribe.py --model --audio import argparse import json import sys def emit(obj): sys.stdout.write(json.dumps(obj) + "\n") sys.stdout.flush() def main(): parser = argparse.ArgumentParser() parser.add_argument("--model", required=True) parser.add_argument("--audio", required=True) args = parser.parse_args() try: emit({"event": "start", "stage": "transcribing", "audio": args.audio}) import mlx_whisper result = mlx_whisper.transcribe(args.audio, path_or_hf_repo=args.model) emit({ "event": "done", "text": result.get("text", "").strip(), "language": result.get("language"), "segments": len(result.get("segments", [])), }) except Exception as exc: # noqa: BLE001 emit({"event": "error", "message": str(exc), "type": type(exc).__name__}) sys.exit(1) if __name__ == "__main__": main()