728x90

전체 글 25

[Linux] 데이터 전처리 시 유의 사항 (개행문자 제거)

데이터 전처리 시 유의사항 음성인식 또는 음성합성에 사용되는 데이터를 전처리 하는 과정에 있어서 windows에서 작업한 파일을 Linux에서 열 경우 간혹 개행문자 (^M) 가 입력되어 있을 때가 있다. Linux에서 개행문자 (^M)는 ctrl + v + M 로 입력하면 된다. 아래 예시와 같이 되어있을때 여러가지 방법으로 수정이 가능하다. $ cat -v test.txt test number1 ^M test number2 ^M test number3 ^M 1. VI 편집기에서 수정 # 한줄만 변경 :%s/^M// # 모든 줄 변경 :%s/^M//g 2. sed 명령어로 수정 sed -i 's/^M//g' test.txt 3. awk 명령어로 수정 # test1.txt 파일로 저장 awk 'sub(^..

Programming 2021.12.16

[C++] Thread(쓰레드)

Thread(쓰레드) 프로세스(Process) 실행의 단위로 정의할 수 있다. 하나의 프로세스는 1개이상의 Thread로 구성되어있고, Thread는 프로세스의 메모리와 자원을 서로 공유한다. 그리고, 각각의 Thread 마다 registers와 stack을 소유하고 있다. 그림으로 표현하면 아래처럼 표현이 가능하다. 1. Thread 사용의 장점 자원의 효율성 증대 처리 비용 감소 프로그램 응답시간 단축(간단한 통신방법) 프로세스 내에서 메모리 영역을 공유하고, 힙영역을 공유하고 있으므로 데이터를 주고받기 편하고, 통신 비용이 적다. 2. Thread 사용의 문제점 자원을 서로 공유하고 있어서 병목현상 또는 데드락 등 동기화 문제가 발생할 수 있다. 설계가 어렵고 디버깅이 힘들다. 하나의 스레드에 문제..

Programming/C++ 2021.12.07

[음성합성] Tacotron2 Model

Tacotron2 2018년 Google에서 "Tacotron2"라는 TTS(Text-to-Speech) 모델을 발표하였다. Tacotron2는 한 문장을 다른 문장으로 변환하는 구조인 "Seq2Seq(Sequence-to-Sequence)"를 기반으로한 모델이다. Tacotron2는 아래 그림과 같은 구조로 이루어져 있고, 크게 인코더, 디코더, 어텐션으로 구성되어있다. 인코더(Incoder) i-vector 또는 x-vector 등과 같은 특징 추출기법으로 이루어진 Character Embedding 계층 3개의 Conv Layers(Convolutional Layer) 양방향 LSTM(Long-Short Term memory Layer)로 구성되어있다. 디코더(Decoder) 인코딩 된 입력 시퀀스..

[KALDI] allocate_egs.py 무한루프 현상

allocate_egs.py 무한루프 현상 KALDI Recipe 중 voxceleb 을 진행하다가 stage 6 ~ 8 x-vector training 부분에서 무한루프 에러가 발생했다. 이 화면에서 몇시간이 지나고도 멈춰있다면 아래 방식으로 해결이 가능하다. sid/nnet3/xvector/allocate_egs.py 에서 일부 코드 수정 ... (생략) line 178 def get_random_utt(spkr, spk2utt): this_utts = spk2utt[spkr] this_num_utts = len(this_utts) i = random.randint(0, this_num_utts-1) utt = this_utts[i] return utt ...(생략) line 255 for n in ..

[음성인식] x-vector

x-vector x-vector는 화자 임베딩 알고리즘의 종류 중 하나로 딥러닝 기반의 특징 추출 기법으로 활발히 연구되고 있는 방식 중 하나이다. 화자 임베딩 알고리즘에는 GMM(Gaussian Mixture Model), JFA(Joint Factor Analysis), supervector, i-vector, d-vector 등이 있다. 이 중 d-vector와 x-vector 방식은 매우 유사한 방식이다. 두 방식 모두 딥러닝 기반의 특징 추출 기법이고, 화자 분류 네트워크를 학습하고 은닉층(Hidden Layer) 중 하나를 임베딩으로 취하는 방식이다. x-vector 방식은 TDNN(Time-Delay Neural Network)의 마지막 은닉층을 통계적 풀링(Statistics Pooling..

[KALDI] VoxCeleb Recipe 따라하기

KALDI VoxCeleb Recipe 따라하기 지난번에 설치한 KALDI를 이용해서 KALDI에서 제공해주는 예제 스크립트중 하나인 VoxCeleb에 대한 실습 VoxCeleb이란?? A large scale audio-visual dataset of human speech 로 약 7천여명의 화자가 2000시간 이상의 음성 파일 데이터셋 이다. https://www.robots.ox.ac.uk/~vgg/data/voxceleb/ 에서 자세한 정보를 알아볼 수 있다. Step 1 : VoxCeleb Dataset 다운로드 아래 링크에서 데이터셋을 다운받을 수 있다. (VoxCeleb1과 VoxCeleb2 모두 필요하니까 둘다 다운로드 해야한다.) 데이터셋의 용량이 매우크기때문에 적어도 110GB의 데이터..

[음성인식] 화자 확인 평가방법 (EER, minDCF)

화자 확인 평가방법 화자확인 평가방법에는 여러가지 방법이 있지만 흔히 사용되는 방식은 EER(Equal Error Rate)과 minDCF(minimum Detection Cost Function)이 있다. 오늘은 EER과 minDCF에 대한 개념을 정리해 봤다. 1. EER(Equal Error Rate) 생체인식 기술에서 성능을 나타내는 지표로 자주 이용된다. 오인식률(FAR, False Acceptance Rate)과 오거부율(FRR, False Rejection Rate)이 같아지는 비율 일반적으로 EER 값이 낮을수록 성능이 우수하다. 2. minDCF(minumum Detection Cost Function) 미국 국립표준기술연구소(NIST, National Institute of Standa..

[환경설정] ESPnet 설치 (in Ubuntu 16.04)

ESPnet 설치 ESPnet?? : End-to-end Speech Processing toolkit 의 줄임말로 종단 간 음성 처리 도구이다. 한마디로 쉽게 말하면 TTS(Text-to-Speech), ASR(Automatic Speech Recognition), STT(Speech-to-Text) 등 여러가지 음성 처리 시스템을 하나의 toolkit으로 제공해 주는 오픈소스이다. ESPnet은 칼디(KALDI)스타일의 레시피를 제공해 주고있으므로 반드시 칼디를 먼저 설치하고 ESPnet을 설치해 주는 것이 좋다. [espnet에서 espnet과 espnet2가 있다. espnet을 사용하면 칼디를 반듯 설치해야 하지만, espnet2를 사용할 경우 칼디를 굳이 설치하지 않아도 된다. 그러나 나는 칼..

Setting 2021.11.29

[환경설정] KALDI 설치 (in Ubuntu 16.04)

KALDI 설치 KALDI(칼디)란?? : 음성 인식 및 신호 처리를 위해 C++로 작성된 오픈소스 음성인식 툴킷 저장소 : https://github.com/kaldi-asr/kaldi GitHub - kaldi-asr/kaldi: kaldi-asr/kaldi is the official location of the Kaldi project. kaldi-asr/kaldi is the official location of the Kaldi project. - GitHub - kaldi-asr/kaldi: kaldi-asr/kaldi is the official location of the Kaldi project. github.com 홈페이지 : http://kaldi-asr.org/ Kaldi ASR ..

Setting 2021.11.26

[환경설정] CUDA 드라이버 설치 (in Ubuntu 16.04)

Ubuntu 16.04에 CUDA 드라이버 설치 지난번 포스팅 2021.11.24 - [Setting] - [환경설정] NVIDIA 드라이버 설치 (in Ubuntu 16.04) 에 이어서 이번에는 CUDA 드라이버까지 설치를 진행할 예정이다. CUDA를 설치하기 전에 NVIDIA 드라이버 버전을 확인하고 CUDA와 호환이 되는지 확인 후 설치하는게 가장 좋다. 1. CUDA Driver 다운로드 NVIDIA 드라이버 다운로드와 마찬가지로 홈페이지에서 버전을 선택하여 설치한다. 아래 표를 보고 버전 호환 여부를 체크하고 설치하자! 설치를 하다보면 Installer Type으로 runfile(local), deb(local), deb(network), cluster(local) 네가지의 옵션이 있다. 그중..

Setting 2021.11.25
728x90