728x90

Speech AI 11

[음성인식] MFCC

MFCC(Mel-Frequency Cepstral Coefficient) 음성 처리 또는 오디오 신호 처리 분야에서 널리 쓰이는 특징(Feature) 파라미터이다. MFCC는 여러 분야에서 활용이 된다. 예를 들어 음성 처리 분야에서는 화자 검증을 할 때 화자의 신원을 확인하는 방식으로 사용이 된다. 그리고 오디오 신호 처리 분야에서는 음악의 장르를 구별하는 방식으로 사용이 가능하다. MFCC를 기술적으로 설명하면 Mel-Spectrum(멜 스펙트럼) 에서 Cepstral(캡스트럼)분석을 통해 특징 값을 추출한다. 아래 그림은 FMCC의 추출 과정이다. 음성 신호를 작은 크기(20~40msec)의 프레임으로 쪼개어 고속 푸리에 변환(FFT, Fast Fourier Transform)을 적용해 스펙트럼을 ..

[음성변조] x-vector를 이용한 화자 익명화 방법 (논문 Review)

x-vector를 이용한 화자 익명화 방법 음성 데이터에서 개인의 데이터를 공유하는 것은 보안 및 개인정보 보호문제에 있어서 많은 문제점이 있다. 뿐만 아니라 사용자의 음성 데이터를 획득하여 음성 합성 시스템(TTS)을 적용하여 화자의 음성 발언을 생성할 수 있고 범죄에 이용될 수도 있다. 그래서 음성 데이터를 공유하기 전에 화자의 신원을 숨기는 기술이 개발되었고, 이 기술이 바로 화자 익명화 기술이다. 1. 화자 익명화 시스템 구조 입력 음성에 대하여 음성 인식 (ASR, Automatic Speech Recognition)을 진행하고, 기본 주파수(F0, Fundamental Frequency)와 x-vector에 대한 특징을 추출하는 과정을 먼저 진행한다. 그런다음 DNN 기반의 ASR 시스템을 사..

[음성합성] 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..

[음성인식] 화자분리 (x-vector 클러스터링 기반의 Speaker Diarization)

x-vector 클러스터링 기반의 Speaker Diarization SAD(Speech Activity Detection) : 음성(Speech)과 비음성(Non-speech) 구간 검출 (VAD와 유사) x-vector extraction : x-vector 특징 추출 PLDA scoring : 확률적 선형 판별 분석 점수 계산 AHC(Agglomerative Hierarchical Clustering) 작은 단위로부터 클러스터링을 시작하여 모든 데이터를 묶을 때까지 반복하는 Bottom-Up 방식으로 클러스터링을 진행 가장 근접한 데이터끼리 클러스터링을 진행 -> 클러스터와 가장 근접한 데이터를 클러스터링 -> 하나의 클러스터링이 될때까지 반복 진행 참고 Recipe : kaldi/egs/libri..

[음성인식] 화자분리(Speaker Diarization)

화자분리(Speaker Diarization) 대화, 상담, 회의 등과 같은 2명 이상의 화자가 발언하는 음성 샘플로부터 화자가 누구인지, 언제 어떤 말을 했는지 확인하는 기술 "Who spoke when?" 아래 예시 처럼 하나의 음성 샘플에서 A화자와 B화자로 분리해 주는 기술이다. 접근 방법 Bottom-Up Approach : 클러스터 수를 연속적으로 병합하여 줄여 각 화자에 대응하는 하나의 클러스터 혹은 모델이 남을 때 까지 반복 학습하는 것을 목표 Top-Down Approach : 단일 화자 모델로 전체 음성 샘플을 모델링 한 후 전체 화자 수가 계산될 때까지 새로운 모델을 연속적으로 추가하는 방식. Bottom-Up 방식에 비하여 성능은 떨어지지만, 계싼 효율이 좋고 클러스터 정제를 통해 ..

[음성인식] 음성인식의 개념

음성인식(Speech Recognition) 음성의 데이터를 문자 데이터로 전환하는 처리. STT(Speech-to-Text) 미리 기록해 둔 음성 패턴과 비교해 개인 인증 등의 용도로 사용하기도 하는데 이를 "화자인식"이라고 한다. 화자 인식(Speaker Recognition) 화자가 누구인지 식별하는 기술 기능에 따라 화자 식별(Speaker Identification) 화자 검증(Speaker Verification)으로 구분이 가능하다. 특정 문장의 사용에서의 인식에 따라 문장 독립 방식(Text-Independent)과 문장 종속 방식(Text-Dependent)으로 구분이 가능하다. 문장 독립 방식 : 화자 인식을 위해 발언하는 문장의 형식이나 종류에 제한이 없는 방식 문장 종속 방식 : 화..

728x90