
AI
시스템 오디오를 실시간 음성인식 API로 자막 요청하기 (for MacOS with Swift)
두줄요약
Swift와 ScreenCaptureKit으로 macOS 시스템 오디오를 캡처해 gRPC 스트리밍 STT API로 전송했습니다. PCM 변환, OAuth 토큰 관리, 실시간 자막 출력과 권한·연결 관리 방법을 안내합니다.
구조와 흐름
- ScreenCaptureKit으로 macOS 시스템 오디오 캡처
- 32비트 float PCM을 linear16 형식으로 변환
- gRPC 스트리밍 STT 요청과 응답 기반 실시간 자막 출력
해결 방법
- SwiftPM 프로젝트에 grpc-swift와 ScreenCaptureKit 연동
- proto 컴파일로 Swift gRPC 클라이언트 코드 생성
- OAuth2 access token 발급 후 DecoderConfig와 오디오 청크 전송
주의할 점
- macOS 13.0 이상 권장 및 화면·시스템 오디오 녹음 권한 필요
- CLIENT SECRET의 env 파일 분리와 Git 업로드 제외
- 장시간 무음 시 gRPC 연결 종료 및 잦은 재연결에 따른 전사 문장 분할 가능성
적용해볼 점
- isFinal 값에 따른 임시 자막 덮어쓰기와 확정 문장 줄바꿈
- 음성 미전송 환경에서 적절한 주기의 gRPC 재연결 전략
