스트리밍 STT
본 문서는 오디오 스트리밍 입력을 텍스트로 변환할 수 있는 스트리밍 STT API를 구현하는 방식에 대한 가이드를 제공합니다. 스트리밍 STT는 1) gRPC 와 2) WebSocket, 두 가지 방식을 지원하고 있으며, 구체적인 연동 방식은 스트리밍 STT - gRPC, 스트리밍 STT - WebSocket 에서 확인하실 수 있습니다. 스트리밍이 아닌 파일에서 텍스트 변환이 필요할 경우 일반 STT 가이드 문서를 통해 STT 기능을 사용할 수 있습니다.
지원 인코딩
스트리밍 STT API는 오디오 코덱 LINEAR16, WAV, FLAC, MULAW, ALAW, AMR, AMR_WB, OGG_OPUS, OPUS를 지원하고 있습니다.
caution
- LINEAR16, MULAW, ALAW, AMR, AMR_WB는 raw data 형태로 전송해야 합니다.
- OGG_OPUS는 OGG 컨테이너에서 OPUS 코덱으로 인코딩된 오디오 프레임 형태로 전송해야 합니다.
- OPUS는 GPRC 방식만 지원하며, OPUS로 연동을 원하시는 경우 별도의 문의를 부탁드립니다.
공통 DecoderConfig/Parameter 정보
스트리밍 STT에서 gRPC 방식과 WebSocket 방식에서 사용되는 DecoderConfig 에 대한 상세 정보는 아래 표를 참고하실 수 있습니다.
이름 | Type (gRPC / WebSocket) | 설명 | 필수 여부 | 기본값 |
---|---|---|---|---|
sample_rate | int | 범위: 8000 ~ 48000, 단위: Hz | O | - |
encoding | AudioEncoding / string | 인코딩 타입 (참고. 지원 인코딩) | O | - |
model_name | string | 사용할 언어 모델 (한국어 - sommers_ko, 일본어 - sommers_ja, 다국어 - whisper) | X | sommers_ko |
domain | string | 사용할 도메인, 자세한 내용은 도메인 참고 | X | CALL |
use_itn | bool | 영어/숫자/단위 변환 사용 여부 (참고: 영어/숫자/단위 변환) | X | true |
use_disfluency_filter | bool | 간투어 필터기능 사용 여부 (참고: 간투어 필터) | X | false |
use_profanity_filter | bool | 비속어 필터기능 사용 여부 (참고: 비속어 필터) | X | false |
use_punctuation | bool | 구두점 사용 여부 | X | false |
keywords | string[] / string | 키워드 부스팅을 위한 값, 자세 한 내용은 키워드 부스팅 참고 | X | - |
language | string | model_name이 whisper일 경우 적용 (참고: 지원되는 전체 언어 목록) | X | ko |
키워드 부스팅 (Keywords Boosting)
키워드 부스팅은 스트리밍 STT API에서 특정 단어의 인식률을 높이거나 낮추는 기능입니다.
형식 및 사용법
키워드 부스팅에 사용할 단어와 그에 해당하는 스코어를 지정합니다.
- gRPC 방식에서는
string[]
형태로 제공됩니다. - WebSocket 방식에서는 쉼표로 구분된 단일
string
형태로 제공됩니다.
개별 키워드는 다음과 같은 형식으로 제공해야 합니다:
"단어"
- 스코어를 지정하지 않은 경우 (기본값 2.0 적용)"단어:스코어"
- 단어와 스코어를 콜론(:)으로 구분
키워드 부스팅 규칙
- 단어: 인식률을 높이고 싶은 단어는 반드시 한글발음과 띄어쓰기로만 이루어져야 합니다.
- 스코어:
- 범위: -5.0부터 5.0까지의 실수 값
- 양수 값: 해당 단어를 더 잘 인식하도록 함
- 음수 값: 해당 단어를 덜 인식하도록 함
- 0 값: 키워드 부스팅을 사용하지 않는 것과 동일
예시
// gRPC 방식
["부스팅", "리턴제로:3.5", "에스티티:-1"]
// WebSocket 방식
"부스팅,리턴제로:3.5,에스티티:-1"
caution
- 스코어 값은 반드시 -5.0 이상 5.0 이하여야 합니다.
- 단어는 한글 발음대로 적어야 합니다. (예: STT (X), 에스티티 (O))
- 단어는 한글과 공백으로만 구성되어야 하며 음절이어야 합니다.
- 각 단어의 길이는 20자 이하로 제한되며, 최대 100개까지 지원합니다.
- 현재 스트리밍STT의 키워드 부스팅 기능은
sommers_ko
모델에서만 지원됩니다.
도메인 (Domain)
도메인은 사용자의 음성 입력 환경에 따라 STT 모델의 성능을 최적화하는 데 사용됩니다.
지원 도메인
-
CALL (기본값): 전화 통화나 마이크가 발화자의 입과 가까이 있는 환경에 최적화된 모델
- 장점:
- 마이크 가까이에서 발화자의 목소리만 선명하게 인식
- 주변 잡음 및 타인의 음성 유입 최소화
- 전화 통화, 개인용 헤드셋 및 근접 마이크 환경에 적합
- 장점:
-
MEETING: 회의실 등 마이크와 발화자 사이에 거리가 있는 환경에 최적화된 모델
- 장점:
- 다수의 발화자 음성을 명확하게 구분 및 처리
- 회의실 및 공개적인 장소에서의 원거리 음성 인식에 최적화
- 장점:
도메인을 선택할 때는 실제 음성 입력 환경에 맞게 설정하는 것이 중요합니다.