Skip to content

[해결] whisper 무조건 한글 인식 방법 #5

@wwquen3568

Description

@wwquen3568

3줄 요약

options = whisper.DecodingOptions(fp16 = False, language="ko")

whisper 예제 코드를 단순히 이렇게 바꾸셈

전체 소스 코드

        audio = whisper.load_audio("voice/input.wav")                        # 저장된 음성 파일로 텍스트 추출
        audio = whisper.pad_or_trim(audio)
        mel = whisper.log_mel_spectrogram(audio).to(model.device)
        _, probs = model.detect_language(mel)
        
        # print(f"- 감지된 언어 : {max(probs, key=probs.get)}")                   # 입력 값 확인 후 반환
        options = whisper.DecodingOptions(fp16 = False, language="ko")      # 항상 한글로 해석해줌
        result = whisper.decode(model, mel, options)
        os.remove('voice/input.wav')



해결 방법

위에 코드처럼

단순히 whisper.DecodingOptions에 language="ko"를 넣어주면된다.

options = whisper.DecodingOptions(fp16 = False, language="ko")

whisper 처리 동작 소스 코드를 확인해보니깐,

whisper 모델 동작 구조는 다음과 같다.

  1. 음성 파일에 대한 언어 탐지
  • 옵션에서 언어 설정을 하지 않으면, 가장 확률이 높은 언어를 선정
  1. 선정된 언어에 대해 speech2text 진행



물론 model.detect_language(대충 객체 뭐시기)

를 했을 경우 감지된 언어가 ko 한글이 아닌 다른 걸로 출력 될 수 있다. 하지만 이는 단순히 가장 높은 언어 확률을 내 뿜는 함수이며,

언어를 위에서 한 것 처럼 별도로 지정해주면 그냥 그 언어를 기준으로 STT를 진행해준다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions