공부 정리 블로그
[음성인식1] - 연구 동향 및 문제 정의 본문
음성인식 변천사
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 그림그리는 문제
- 음향모델P(O | W): 어떤 언어에 대해 음소(발성할 때 가장 최소단위 / 발음 기호 하나하나) 음소모델을 만든다음 이어 붙이면 단어모델 => 문장모델
- 언어모델P(W) : P(W) 문장의 생성확률은 마이크에 무슨 소리가 들어오던지 먼저 결정되어 있음 => 사전확률
- 디코딩네트워크(𝑎𝑟𝑔𝑤𝑚𝑎𝑥)
- 어휘(인식가능한단어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 개념 정리하기
'대학원 수업 > 음성인식' 카테고리의 다른 글
[Chapter9]언어모델(4)-DNN 기반 언어모델 (0) | 2023.05.31 |
---|---|
[Chapter9]언어모델(2) - back-off, perplexity (1) | 2023.05.24 |
[Chapter9]언어모델(1) - ~smoothing (0) | 2023.05.17 |
중간고사 (0) | 2023.04.19 |
[음성인식2] - 입/출력 end 복잡도 분석 (0) | 2023.03.15 |