홈으로 돌아가기

미팅을 위한 C# Whisper 음성 인식

C# 프로그램이 시스템 오디오 스트림을 캡처하고, Whisper를 STT에 사용하며 Azure/OpenAI를 통해 번역합니다. 최적 Small 모델, 구문용 VAD 설정. 확장을 위한 모듈러 아키텍처.

C# 유틸리티: Whisper STT + 실시간 번역
Advertisement 728x90

C#로 실시간 음성 인식 및 번역 구현: Whisper 활용법

이 애플리케이션은 팀즈 같은 플랫폼의 오디오 스트림을 캡처하고, 음성 세기와 정지 시간 기반으로 문장 단위로 분할한 후, 러시아어, 영어, 프랑스어 등에 대해 Whisper를 이용해 음성-텍스트 변환(STT)을 수행한 다음 번역합니다. C# 구현은 약 20%의 커스텀 코드를 사용하며, 나머지는 통합을 통해 구성됩니다. 단일 언어가 선택된 경우 사전 모드(자막 모드)를 지원하며, 오디오 저장 옵션 포함 전사만 가능합니다.

설정에서는 다음과 같은 항목을 보정할 수 있습니다:

  • 음성 감지용 음성 세기 임계값
  • 문장 간 정지 시간

하단 우측에 표시되는 통계 정보는 현재 오디오 레벨과 감지 플래그를 제공하여 정밀 조정에 적합합니다. 오디오 캡처는 시스템 믹서(헤드폰/스피커)를 통해만 작동하며, 직접 마이크 입력은 지원하지 않습니다.

Google AdInline article slot

Whisper 모델 선택과 성능 비교

로컬 STT 솔루션을 테스트한 결과:

  • Sherpa (ONNX): 스트리밍 프랑스어 버전이 아키텍처와 맞지 않음
  • Foundry Local (마이크로소프트): 원시 파일 기반 통신, Whisper 기반

결국 우리는 Whisper를 선택했습니다.

| 모델 | 속도 | 논리 처리 | 비고 |

Google AdInline article slot

|-------|-------|-------|-------|

| Base | 빠름 | 없음 | 최소 기능, 맥락 없음 |

| Small | 중간 | 있음 | 최적 균형, 온도 0.1–0.2 |

Google AdInline article slot

| Medium | 느림 | 좋음 | 실시간 회의 중 청크 큐 증가 |

NPU/GPU 없이도 RAM 사용량이 증가하지만, 고품질 회의 오디오에서는 결과가 여전히 만족스럽습니다.

번역 서비스 통합 방법

두 가지 옵션 제공:

  • OpenAI: 설정에서 API 키, 모델, URL을 지정 가능.
  • Azure Translator: 무료 요금제는 월 200만 자까지 제공; 계정 필요.

ITranslationService 인터페이스를 통해 새로운 제공업체 추가가 용이합니다 (예: 유안덱스 API, 결제 기반). 로컬 번역기는 품질 기준을 충족하지 못했습니다.

Azure 예시 구성:

public class AzureTranslationService : ITranslationService
{
    private readonly string _key;
    // ...
}

실제 적용 사례와 제약 사항

이 도구는 녹화 없이 실시간 다국어 회의 요구를 해결합니다. 프랑스어, 영어, 러시아어로 테스트 완료. 모든 녹화 도구는 아님 — 오직 시스템 오디오 출력만 캡처 가능.

중급 이상 개발자에게 추천: 스트리밍 청크 처리 중심의 모듈식 아키텍처. STT/번역 엔진 교체 또는 새 VAD 알고리즘 추가로 확장 가능.

핵심 요약:

  • VAD 유사 파라미터로 시스템 오디오 캡처 및 문장 분할
  • 실시간 사용에 최적: Whisper Small, 온도 0.1–0.2, GPU 필요 없음
  • 간단한 번역 인터페이스; Azure는 월 200만 자 무료 제공
  • 번역 없이 전사만 가능한 STT 전용 모드
  • 음성 감지 정확도 조정을 위한 실시간 통계 제공

— Editorial Team

Advertisement 728x90

다음 읽기