Data/ML&DL

음성인식개론(문제정의, 저장방법, Tokenization)

동동 2023. 4. 22. 23:21
728x90

음성인식 문제 정의

  1. 음성인식이란? 마이크를 통해 입력 받은 음성(Speech)이 주어졌을 때, 확률이 가장 높은 문장(단어의 열)을 출력
    • ArgMaxP(W|X)
      • W = {W1, W2, … , Wu} : U개의 단어 시퀀스
      • X = {x1, x2, …, xt} : 음성시퀀스
    • ArgMaxP(W|X)의 문제점
      • X가 고정되어 있다고 가정. 실제는 고정되어 있지 않음.
      • 출력의 확률 분포를 고려하지 않음.
      • 단어의 의존성을 고려하지 않음.
  2. E2E의 장점과 단점
    1. 장점
      1. SOTA를 보임
      2. 음성파일과 이에 대응되는 Transcription만으로 학습
      3. 전혀 모르는 언어에 대해서도 음성인식기 제장 가능
    2. 단점
      1. 외부지식을 실시간 반영할 수 없음
      2. 대용량 텍스트 코퍼스를 음성인식기에 직접 반영할 수 없음
      3. 구조 복잡. 파라미터 많음. Computation Power 많이 사용. ML 기반 학습
      4. 재현 실험 X

음성 신호 저장 방법 및 시스템 입력

  1. 음성 신호의 저장 시 필요한 파라미터
    1. 샘플레이트 : 보통(16K) [ex.음악(44.1K), 가청 (20~20K), 전화(8k)]
    2. Sample 당 2byte 사용 [ex. 보통 2^16 = 65,536]
  2. 음성인터페이스 저장
    1. 배경 : 입력 길이의 제한이 없으므로 용량을 줄이면서 유용한 정보는 최대한 유지하는 Feature 추출이 필요. [ex. 음성을 20ms 단위의 window로 나누고 각 windows마다 13차 MFCC Feature를 추출]
      1. Window별 feature 추출 이유 : windowing을 통해 시간적인 연속성을 보존하기 위해서. [겹치는 구간을 ‘hop size’ 이라고 한다.]
  3. MFCC feature 추출 과정
    1. Input Speech (short[T][320])
    2. Windowing
    3. FFT(Fast Fourier Transform)&Magnitude
      1. FFT(Fast Fourier Transform):시간 도메인의 신호를 주파수 도메인으로 변환하는 것 ex : 16khz 샘플링 레이트의 FFT 분석을 위해 8kHz를 2^9로 분리 2^10에서 실수와 허수의 벡터 성분이 대칭을 이루기 때문에 중복값을 제거하여
        2^9로 사용.
        최종 Frequency는 15.625(계산방법 : 8000/512)
    4. mel-filterbank & Log
      1. x(n) = v(n)*e(n)
        1. v(n) = 구강구조(음성에 대한 정보, 내가 없는 것)
        2. e(n) = 성대에서 울리는 소리(화자에 대한 정보)
    5. DCT

    Tokenization

    1. BPE(byte-pair encoding)
      1. 모든 단어들을 글자 단위로 분리
      2. 가장 빈도수가 높은 유니그램의 쌍을 하나의 유니그램으로 통합
      3. K번 동안 2를 반복함
      4. 결과적으로 Vocabulary에 K개의 새로운 Unigram이 추가됨
728x90