공부 정리 블로그

[음성인식1] - 연구 동향 및 문제 정의 본문

대학원 수업/음성인식

[음성인식1] - 연구 동향 및 문제 정의

따옹 2023. 3. 8. 20:22

음성인식 변천사

1. end-to-end

Transformer(multihead, positioning, 한 개 더?_ )<- attention <- seq2seq <- RNN <- FFNN <- perceptron

end - to - end 

 

(pair를 만들어서)

태국어 음성 - txt

wave(입력) - txt(출력)

 

2.

2010년도 유행

DNN-WFST <- HMM

음향, 언어, 디코딩

 

 

CS input / output (1:1 매칭)

AI 가능한 입출력의 개수 무한

 

개발추천

재현이 잘되고 커뮤니티에 검증이 잘 된 것

NBIDIA - 니모 (transformer) 

 

데이터는?

데이터댐(한국어만큼 쉬운 데이터가 많았음)

 

음성인식이란?

입력받은 음성에서 확률이 가장 높은 문장을 찾음

 

W ={w1, w2, ...., wu} U개의 단어 시퀀스(N개의 단어들로 이루어진 문장)

X = {x1, x2, ..., Xt} 음성 시퀀스

확률을 제일 최대로 해주는 문장 W(w1, w2, w3...), X마이크를 통해서 입력받은 음성

 

번역 음성인식
I am a student -> 나는 학생입니다
seq -> seq
discrete 한 것을 discret(번역)
continuous -> discrete

 

음성인식이란?

1. continuous space vector 열을 -> discrete index seq(음성인식)

2. 입력 sequence보다 출력 sequence가 짧음

- (번역)한국어로 길게 했으면 영어도 길고 한국어가 짧으면 영어도 짧음 길이가 어느정도 비슷할 것이다

- (음성인식) 1초동안 얘기한 입력 vector seq 1/50초로 자름

3. 실시간성을 가지고 있음(1~2초 이내/시계열)

- (번역) 기다려 줄 수 있음

- (음성인식)시간 축 상 순서대로 (시계열) 음성에 해당하는 발성이 순서대로 신호화됨

4. trade-off 관계

- 인식률 /메모리 사용량 / 반응 속도

5. 소리 전달 속의 제약

- (조건) 사람의 발화 : 공기를 통해 소리가 전달되는 속도는? -> 340m/s

 

음성인식 시스템의 가능한 입력 개수

(가정) 입력길이 1초, 44.1K, 샘플 당 2byte 사용

2^10 = 10^3

2^88200x8 = 2^10x88200x8

이므로 입력가능한 개수는 무한대

 

음성인식 시스템의 가능한 출력 개수

어휘를 구성하는 단어의 수 (𝑉) : 무한대 (지명, 인명 등 제한이 없으며 신조어가 계속해서 생성된다)

연속 음성인식에서는 입력파형만을 가지고 몇 개의 단어로 구성된 문장인지 알 수 없다

 

단어의 set을 정해 n개의 단어로 구성해 제일 가능성이 높은 문장을 찾아야한다

최대 가능한 문장의 수는 V^n

=> 무한 개의 입력과 출력이 가능하다

 

 

SNR(signal noize ratio)

에너지의 비율 구하기 

SNR0 db = log scale

signal = noise 비율이 같다(이때 비율이 1)

DB scale은 log 이므로 비율 1

 

음성 인식이 어려운 이유

1. 어디서부터 어디까지가 음성인지 모른다(코엑스에서 음성인식기가 있을 때 더 어려움)

2. 반향(무향실 (20db) 반향이 없는 방)환경 구축이 쉽지 않음

 

 

음성인식 classification problem

(발성)generation

argmax_wP(W|X) -> 분류문제 음성인식

classification - 고양이그림은 고양이로 분류

generation 그림그리는 문제

end-to-end
DNN-WSFT(end-t0-end 보조적인 느낌으로?)

 

  1. 음향모델P(O | W): 어떤 언어에 대해 음소(발성할 때 가장 최소단위 / 발음 기호 하나하나) 음소모델을 만든다음 이어 붙이면 단어모델 => 문장모델
  2. 언어모델P(W) : P(W) 문장의 생성확률은 마이크에 무슨 소리가 들어오던지 먼저 결정되어 있음 => 사전확률
  3. 디코딩네트워크(𝑎𝑟𝑔𝑤𝑚𝑎𝑥)
  4. 어휘(인식가능한단어set)  의구현이다

O는 마이크에 들어오는 무한의 데이터, 처음에는 구하기 쉽지 않았지만

예전엔 적은 양의 데이터를 이용해서 feasalval하기는 DNN했는데

이후에는 end-to-end 로

처음에는 likelihood를 최적화 시켰지만 -> end-to-end 가능해지면서 해당 방법 사용(transformer)

 

argmax_wP(W|X)transformer(= end-to-end) 사후확률 = argmax_wP(X|W)P(W)/P(X) 분별학습/분모를 그래도 잘 학습해보자*&

*(baysian rule) = argmax_wP(X|W)P(W)

결과가 안녕하세요/감사합니다 중 어느 확룰이 높을지가 중요

 

 

 

E2E방법의 장점 및 주요 검토 항목

 

GPT(generation pretrained)

 

ELMO GPT Attention 개념 정리하기