Jelajahi Sumber

Update to admin.py

Benjamin Harris 1 bulan lalu
induk
melakukan
60b8ee2b43
3 mengubah file dengan 8 tambahan dan 5 penghapusan
  1. TEMPAT SAMPAH
      bridge/__pycache__/bridge.cpython-312.pyc
  2. 1 1
      bridge/admin.py
  3. 7 4
      bridge/bridge.py

TEMPAT SAMPAH
bridge/__pycache__/bridge.cpython-312.pyc


+ 1 - 1
bridge/admin.py

@@ -172,7 +172,7 @@ async def _stream_file(filepath: Path, speed: float) -> None:
 
         stream = miniaudio.stream_file(
             str(filepath),
-            output_format=miniaudio.SampleFormat.FLOAT32,  # match bridge dtype
+            output_format=miniaudio.SampleFormat.SIGNED16,  # back to s16le
             nchannels=1,
             sample_rate=16000,
             frames_to_read=chunk_frames,

+ 7 - 4
bridge/bridge.py

@@ -332,8 +332,10 @@ async def audio_processor_loop(state: BridgeState, mqtt_client: mqtt.Client, eng
     def audio_callback(indata: np.ndarray, frames: int, time_info, status) -> None:
         if status:
             print(f"[Audio] {status}")
-        chunk = indata.astype(np.float32).tobytes()
-        loop.call_soon_threadsafe(lambda: audio_queue.put_nowait(chunk) if not audio_queue.full() else None)
+        chunk = indata.tobytes()  # raw s16le
+        loop.call_soon_threadsafe(
+            lambda: audio_queue.put_nowait(chunk) if not audio_queue.full() else None
+        )
 
     device = _choose_audio_device()
     if device is None:
@@ -358,7 +360,8 @@ async def audio_processor_loop(state: BridgeState, mqtt_client: mqtt.Client, eng
         test_audio_queue = asyncio.Queue(maxsize=240)
         with sd.InputStream(
             device=device, samplerate=SAMPLE_RATE, channels=CHANNELS,
-            dtype="float32", blocksize=BLOCKSIZE, callback=audio_callback,
+            dtype="int16",  # s16le — matches pcm_input mode
+            blocksize=BLOCKSIZE, callback=audio_callback,
         ):
             while True:
                 # Drain test audio injection first if available
@@ -387,7 +390,7 @@ def main() -> None:
     from whisperlivekit import TranscriptionEngine
     state       = BridgeState()
     mqtt_client = build_mqtt_client()
-    engine      = TranscriptionEngine(model_size="large-v3", lan="en", diarization=False)
+    engine      = TranscriptionEngine(model_size="large-v3", lan="en", diarization=False, pcm_input=True)
 
     def _run():
         asyncio.run(audio_processor_loop(state, mqtt_client, engine))