본문 바로가기
반응형

Spoken Language Processing33

비원어민 음성인식 및 발음평가 (한국어 발음 교육) 비원어민 음성인식 및 발음 평가 유창성이 떨어지고 문법/표현 오류가 포함된 비원어민 발성에 강인한 음성인식 기술 결국은 데이터. 최대한 많은 비원어민의 잘못된 음성, fluency 낮은 음성을 가지고 학습해야함. 어휘적 문제, 음향적 문제 포함된 다양한 측면의 데이터를 최대한 많이 수집해서 모델링해야함. 이게 비원어민 음성인식의 목표. human expert와 machine score 간의 correlation 을 최대화하는 발음 유창성 평가 기술 발음 평가 : 기계가 못함. 결국은 사람들이 잘 만들어낸 지식을 활용해야 함. 한국인이 /p/, /f/ 구분 잘 못하는데 이걸 어떻게 잘 구분해서 유창성 떨어지는걸 표시할까를 고민 human rater, 음성학자들이 이러한 지식을 잘 만들어 놓아야 함. 우리는.. 2023. 1. 15.
kaldi 설치하기 Kaldi 란? Kaldi 는 음성인식 및 신호 처리를 위한 오픈 소스 음성 인식 툴킷 Kaldi 설치 방법 Kaldi github 에서 다운로드 받고 환경 설정해주기 git clone https://github.com/kaldi-asr/kaldi.git cd tools/ extras/check_dependencies.sh CXX=g++-4.8 extras/check_dependencies.sh sudo apt autoremove g++ sudo apt-get remove g++-4.8 sudo apt-get install g++ make make CXX=g++-4.8 make CXX=g++ make -j 4 cd src/ ./configure --shared make depend -j 8 make -j.. 2022. 11. 17.
kaldi CSID (substitution, insertion, deletion) 발음 오류 패턴 분석, wer 계산 2022 AI 학습 데이터 활용 해커톤에 참여하게 되면서 외국인 학습자들의 한국어 발음 분석을 해보았다. 외국인의 한국어 발화 데이터를 활용하여 권역별(국가별) 발음 오류 패턴을 비교 분석하는 과제이고, 최종적으로 Chinese, Spanish, English L1 학습자의 한국어 발음 오류 패턴을 제시하였다. 발음 오류 패턴 분석을 위하여 CSID (correct, substitution, deletion, insertion) 오류를 사용함 위의 CSID 를 구하기 위해 칼디 툴킷을 사용함 ref 와 hyp 파일 만들기 CSID 발음 오류 패턴 분석은 정답 음소열과 음소인식기를 돌린 결과 음소열을 일대일 대응시켜 해당 자리에 정답 음소열이 있는지 비교하는 것임 Substitution 치환, Deleti.. 2022. 11. 17.
G2P(grapheme to phoneme)란? - 발음열 정보의 중요성 음성인식과 발음 모델(G2P) 전통적인 HMM 기반 모델 HMM 기반 모델 : 음향모델, 발음모델, 언어모델로 나눌 수 있음. 발음 모델 : 단어를 음소로 매핑하는 과정에서 발음 모델 사용. 발음 모델 정의할 때는 타겟 언어에 대한 특별한 지식 필요. G2P (Grapheme to Phoneme) = 발음 모델 - 철자와 발음을 매칭하는 모델 - 발음변이 규칙을 찾고 예외처리를 적용해주는 모델 - 이러한 발음 모델(G2P)을 통해 철자와 단어에 대한 발음 사전을 만들어서 음성 정보와 텍스트 정보를 상호 변환해주는 역할 - 즉, 음소 시퀀스를 단어 시퀀스로 변경하기 위해 참고하는 모델 음향 모델 : 입력 오디오와 HMM 상태 간의 매핑을 모델링 - 위에서 발음 모델(G2P)을 통해 발음 사전이 만들어졌다면.. 2022. 9. 28.
Huggingface 튜토리얼 (1) 기초 개념 소개 Tokenizer Tokenizer 가 매우 중요 결국 문장(글자, 텍스트)를 어떻게 숫자로 잘 바꿀 수 있을까가 관건 그렇게 하기 위해 가장 먼저 해야 할 것 - tokenizer - "학교에 가서 수업을 들었다." = 학교에 / 가서 / 수업을 / 들었다. 나누는 방법 다양함 - 띄어쓰기 단위 / 문자 단위 / subword 단위 - 각각의 장 단점이 있음 "오늘 저녁은 맛있었다." 띄어쓰기 단위 : [오늘, 저녁은, 맛있었다] - 명료, 적용 쉬움 - "맛있다, 맛있어요, 맛있었다" 가 모두 다르게 인식됨, 단어사전이 매우 커짐 문자 단위 : [오, 늘, 저, 녁, 은, 맛, 있, 었, 다] - 각 token 이 의미를 담지 못함 subword 단위 : [오늘, 저녁, 은, 맛있, 었, 다] - 띄.. 2022. 9. 15.
Huggingface 로 wav2vec2.0 실습 - 영어 Huggingface Fairseq facebook 에서 처음에는 shell 을 통해 바로 훈련시키는 fairseq 라는 AI 툴킷을 공개함 따라서 이 fairseq 를 통해 pretrained 모델을 가져와 fine-tuning 가능했었음 Huggingface 그 이후 huggingface 에서 python 에서 pretrained 모델을 가져와 fine-tuning 할 수 있도록 만들어줌 Huggingface 는 자연어처리 스타트업에서 개발한 다양한 트랜스포머 모델(transformer.models) 과 학습 스크립트(transformer.Trainer) 를 제공하는 모듈 transformers.models : 트랜스포머 기반의 다양한 모델을 pytorch, tensorflow 로 각각 구현해놓은 모.. 2022. 8. 18.
wav2vec2.0 pretrained 모델로 디코딩하기 Facebook - wav2vec2.0 개념 설명 Facebook 에서 약 5만 시간의 데이터를 훈련시켜 음성인식 pretrained 모델을 만들었음 - 5만 시간이라는 대량의 데이터로 훈련할 수 있었던 이유는 label 이 없는 데이터이기 때문에 가능했었음 - 즉, 라벨이 없는 데이터를 이용하여 자기 자신의 특성(representation)을 배우는 학습 방법인 self-supervised learning (자기지도학습)을 통해 만든 pretrained 모델 물론 finetuning 할 때 더 큰 데이터일수록 좋지만, 960hrs, 100hrs, 10m 비교했을 때 10m 모델로 fine-tuning 해도 충분히 좋은 결과가 나옴 즉, pre-trained 모델만 잘 만들어두면, 내가 가지고 있는 데이.. 2022. 8. 17.
End-to-End ASR : Attention vs RNN-T 음성인식(ASR) 이란? 사용자의 발화를 입력으로 받아 음성인식을 거친 후 텍스트로 전사하는 과정 음성인식 - 사용자의 발화(발음적인 신호 자체에 대한 확률들) = acoustic model - 발화 자체가 있을 법한 문장인가 = language model 위의 두가지 확률들을 합쳐서, 사용자가 발화를 했을 때 그것이 어떤 말인지 가장 있을 법한 텍스트를 추론하는 것 End-to-End(E2E) ASR 기존 음성인식 모델링 입력 음성을 음소 단위로 mapping 음소 단위를 다시 텍스트로 전사하기 위해 수 많은 과정을 거쳐야 함 이렇게 매우 복잡하기 때문에 진입장벽이 매우 높은 분야 중 하나였음 End-to-End(E2E) 로의 전환 기존 방식에서는 음성을 phoneme(음소)으로 모델링 했음 E2E 에.. 2022. 8. 4.
Fairseq - Wav2vec 2.0 Pretraining (3) pretraining 시키기 앞 글에 이어 fairseq 의 examples 의 wav2vec2.0 pretraining 글입니다. 2. wav2vec 2.0 모델 학습시키기 Train a wav2vec 2.0 base model fairseq-hydra-train \ task.data=/path/to/data \ --config-dir /path/to/fairseq-py/examples/wav2vec/config/pretraining \ --config-name wav2vec2_base_librispeech 위 configuration은 wav2vec 2.0 논문의 Libispeech 데이터 세트에 대해 훈련된 기본 모델 입력은 16000 Hz 로 샘플링된 단일 채널이어야 함 데이터, 모델 파라미터 설정을 위한 config 정보 .. 2022. 6. 14.
Fairseq - Wav2vec 2.0 Pretraining (2) Preprocess 전처리하기 CLI 툴킷을 사용해 새 모델 학습시켜보기 2. Preprocess - vocabulary 파일 생성하기 fairseq에 내장된 fairseq-preprocess 명령어 또는 'libri_labels.py' 파이썬 파일을 통해 전처리 할 수 있음 4개의 파일 : 'dict.ltr.txt', 'train.tsv', 'train.wrd', 'train.ltr' fairseq 장점 : 메모리가 넉넉해서 훈련 잘 됨 (huggingface 에서 했을 때 잘 안되었던 것 fairseq 로 잘됨) - huggingface 는 캐시메모리 폴더를 만들고 거기에 저장 - 용량 차지 많이 함 - 따라서 하드 메모리 부족하기도 함 --> cuda out of memory... 에러메세지 많이 뜸 --> huggingface.. 2022. 6. 14.
반응형