최근, 서버에 실시간 STT(Speech-to-Text) 시스템을 구현하고 서비스 운영을 시작했다. AI 봇과 사람 간의 대화 경험을 더 자세히 점검하고 싶은 마음에 개인 맥북에도 실시간 STT 환경을 구축하기로 결심했다.
처음에는 M2를 지원하는 모델을 찾아 직접 코딩하려 했지만, 시간이 꽤 걸릴 것 같아 좀 더 간단한 방법을 찾아보았다. 여러 옵션을 살펴본 끝에 Whisper를 기반으로 한 실시간 STT 솔루션을 발견했고, 이를 사용하기로 했다.
우선 설치는 다음과 같이 해두자
git clone https://github.com/ufal/whisper_streaming.git
brea install sox
설치와 실행이 매우 간단해 보여 마음에 든다. 먼저 서버를 실행하는 명령어는 다음과 같다:
python3 whisper_online_server.py --language ko --min-chunk-size 1 --vad --buffer_trimming_sec 1 --model tiny
이 명령어로 한국어 인식을 위한 Whisper 서버를 실행할 수 있다. 작은 크기의 'tiny' 모델을 사용하고, 음성 활성화 감지(VAD)를 활성화하여 효율적인 처리가 가능해 보인다.
그 다음, 맥북의 마이크로 입력되는 오디오를 서버로 스트리밍하는 명령어는 이렇다:
sox -t coreaudio default -b 16 -e signed -c 1 -r 16000 -t raw - | nc localhost 43007
이 명령어를 통해 맥북의 기본 오디오 입력을 16kHz 샘플레이트의 16비트 signed PCM 형식으로 변환하고, 이를 로컬호스트의 43007 포트로 전송할 수 있다.
Voice UX 실험할 준비가 됐다. 앞으로 더 많은 리서치 결과를 기록해야할 것 같다.