From 4896570e3df3ef5aa968316e2da406cb5ef3a05e Mon Sep 17 00:00:00 2001 From: Yuta Hayashibe Date: Fri, 23 Sep 2022 19:28:11 +0900 Subject: [PATCH] Add --mic option --- whisper_streaming/cli.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/whisper_streaming/cli.py b/whisper_streaming/cli.py index 3df60ce..4709e99 100644 --- a/whisper_streaming/cli.py +++ b/whisper_streaming/cli.py @@ -3,6 +3,7 @@ import argparse import queue from logging import INFO, getLogger +from typing import Optional, Union import sounddevice as sd import torch @@ -16,8 +17,11 @@ from whisper_streaming.transcriber import WhisperStreamingTranscriber logger = getLogger(__name__) -def transcribe_from_mic(config: WhisperConfig) -> None: - sd_device = None +def transcribe_from_mic( + *, + config: WhisperConfig, + sd_device: Optional[Union[int, str]], +) -> None: wsp = WhisperStreamingTranscriber(config=config) q = queue.Queue() @@ -69,6 +73,9 @@ def get_opts() -> argparse.Namespace: type=int, default=5, ) + parser.add_argument( + "--mic", + ) return parser.parse_args() @@ -78,13 +85,21 @@ def main() -> None: logger.setLevel(INFO) if opts.beam_size <= 0: opts.beam_size = None + try: + opts.mic = int(opts.mic) + except Exception: + pass + config = WhisperConfig( model_name=opts.model, language=opts.language, device=opts.device, beam_size=opts.beam_size, ) - transcribe_from_mic(config=config) + transcribe_from_mic( + config=config, + sd_device=opts.mic, + ) if __name__ == "__main__":