2017의 게시물 표시

Kaldi Tutorial for Korean Model Part 1

이미지
Image source 칼디로 한국어 음성인식 구현하기 파트 1 본 튜토리얼은 칼디를 막 시작하는 초보자들을 대상으로 하고 있으므로 칼디를 어느정도 공부하신 분들에게는 적합하지 않을 수 있습니다. 모든 설명은 다음 깃헙 에 올려진 run.sh 스크립트를 기준으로 진행되면 추가적으로 궁금한 사항은 칼디 공식 홈페이지 나 칼디 구글 헬프 를 이용하길 바랍니다. 본 튜토리얼에서 사용하는 스크립트는 맥과 리눅스(우분투) 환경에서 준비해왔기 때문에 그 외에 환경 (예: 윈도우)에서는 제대로 진행되지 않을수도 있습니다. 어차피 칼디를 진행하기 위해서는 리눅스 환경이 갖춰져야 하기 때문에 이 부분은 불편하시더라도 최대한 맞춰주시고 튜토리얼을 진행하여 주시기 바랍니다. 튜토리얼에 사용되는 튜토리얼용 서울말 낭독체 코퍼스는 아래 링크를 통해 받으실 수 있으며, 튜토리얼 진행 도중 훈련에 필수적인 파일들이 제대로 생성되지 않을 상황에 대비해서 몇개의 파일을 미리 생성하여 준비하였으니 필요한 데이터는 그때마다 다운 받으시고 계속해서 진행해 나가시면 되겠습니다. 궁금한 사항이 있으실 경우 개인적인 메일을 보내시기 보다는 아래에 댓글을 다셔서 대부분의 질문이 이 튜토리얼을 보는 모든 분들과 공유되게 해주시기 바랍니다. 데이터 준비 서울말 낭독체 데이터 구하기 훈련을 하기 위해 먼저 데이터를 준비해야 한다. 우리는 국립국어원에서 제공하는 서울말 낭독체를 이용해서 실험을 진행할 것이다. 따라서 다음 링크 에서 “small_krs” 폴더를 먼저 받기를 바란다. 혹시 전체 데이터를 다운 받아 훈련을 진행하고자 한다면 다음 링크 를 통해 국립국어원으로 접속하여 공지사항을 확인한 후 데이터를 받으면 되겠다. 본 훈련의 빠른 진행을 위해 정제된 데이터를 제공해 주었지만 데이터를 훈련하는 것 만큼이나 중요한 것이 바로 잘 정제된 데이터를 준비하는 것이다. 정제 이전의 서울말 낭독체는 꽤나 많은 수 작업을 필요로 하기에 미리 데이터를 잘 정리하는 작업...

Speech2face Instruction

이미지
Notice This instruction is mainly written for the NAMZ & EMCS members. Therefore, the other users who would like to duplicate this tutorial might experience unexpected errors. System Settings Mac OSX(Sierra) Matlab Speech2face Introduction Speech2face is a plotting tool that visualizes dynamic lips movement in real time. This is trained with deep neural network which receives speech signals as inputs to predict lip parameters (as outputs). (Speech2face will be updated to visualize whole face movement.) By uttering a few sentences, the speaker is able to receive instantaneous feedback of his or her lip movement from the machine. Pronouncing /a/,/o/,/i/ Install Feature Extractors Go visit this github and download speech2face to your local computer. We will use ‘FaceTracker’ and ‘OpenFace’ toolkit in order to retrieve 3 types of data: images, raw.pcm(audio file), and parameters.txt (pts data). Two toolkits are already donwloaded and manipulated for the...

Korean Forced Aligner: 한국어 자동강제정렬

이미지
Korean Forced Aligner: 한국어 자동강제정렬 음성정렬은 음성데이터를 정제하는 작업으로 언어를 공부하는 연구자라면 한번 쯤 들어보거나 직접 정렬해본 경험이 있을 정도로 언어학자에게 친숙한 단어이다. 오늘은 언어학 연구에 자주 사용되는 음성정렬 작업을 자동으로 편리하게 강제정렬 해주는 자동강제정렬에 대해 이야기 하고자 한다. 음성정렬 음성정렬은 음성자료와 그 음성자료를 전사한 텍스트 파일을 이용하여 문장을 음소 단위(소리에서 가장 작은 단위. e.g., /p/, /t/)나 어절(띄어쓰기로 나눠진 한 토막. e.g., ‘나는’, ‘사과를’, ‘먹었다’)단위로 나누는 작업을 말한다. 아래 ‘수도’ 라는 단어를 통해 간단히 음성정렬에 대해 알아보자. 위 그림처럼 수도라는 단어에 대해서 음성파일과 음소 전사파일을 가지고 있으면 음성정렬준비는 끝났고, 이제 이 단어에 존재하는 각 음소의 시작과 끝 구간을 결정하여 잘라내면 음성정렬이 끝난다. (개념자체는 쉽다.) 현재 그림상에서 나타나는 음소는 총 4개 (s0, uu, t0, oo)니까 이들을 잘라주는 4개의 줄을 그리면 된다. 따라서 음성정렬에 대한 결과는 다음과 같을 것이다. 정렬시 고려할 사항 음소셋 정하기 정렬을 진행하기 전, 먼저 데이터 파일을 정렬할 음소 개수 및 표기법을 정해야한다. 우선 각 언어마다 존재하는 근본적인 음소셋을 모은 다음, 연구자의 주관에 따라 음소셋에 변이형을 생성 시키면서 음소셋을 구성하면 된다. 예를 들어, 한국어 음성정렬을 위해 한국어 음소셋을 구성한다고 하면 /a/라는 근본적으로 한국어에 존재하는 모음을 정하고, 이 모음이 단어 처음에 시작될 경우와 단어 마지막에 나타나는 경우로 세밀하게 나누어 음성정렬을 하고싶다면 다음과 같이 /a0/, /a1/ 음소셋을 구성할 수 있을 것이다. 다음은 2015년에 (연구목적 시 무료) 배포 된, 한국어 자연발화 코퍼스에서 사용한 음소셋이다. 정렬시 객관...

RNN(Vanilla),RNN(LSTM),RNN(GRU) Performance Test

이미지
ANN lstmRNN gruRNN performance test Image source Comparison of English character recognition performance among RNN(Vanilla), RNN(LSTM), and RNN(GRU). Hyungwon Yang 04.19.17 NAMZ Labs Task Tensorflow에서 제공하는 기본적인 RNN방식과 LSTM cell, 그리고 GRU cell을 적용한 RNN방식 총 3가지 모델의 성능을 비교한다. 영어 character 단위의 데이터셋을 이용하여 훈련한 뒤, 훈련에 사용하지 않은 테스트 셋으로 결과를 추출하여 세 모델의 성능을 비교한다. Training Corpus Project Gutenberg’s The Divine Comedy, Complete, by Dante Alighieri This eBook is for the use of anyone anywhere at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org The part of the corpus was extracted for training. Experimental Setting. Python 3.5.3 Tnesorflow 1.0.0 Mac OSX sierra 10.12.4 Data Preprocessing. 이전 report에서 보고하였던 것으로 갈음한다. RNN(Vanilla) Training Hidden unit의 개수는 50, 100, 200으로 총 3번에 걸쳐 실행하였으며, 자세한 설정사항은 아래와 같다. 설정...

ANN vs RNN(LSTM) Performance test

이미지
ANN RNN performance test Image source Tensorflow를 이용한 기계학습 실험 Google에서 Tensorflow를 오픈소스로 공개한 이후, 기계학습에 대한 접근성은 더욱 용이해졌다. 물론 Tensorflow가 나오기 전에도 Keras나 Theano와 같이 기계학습 관련 툴들은 존재했었다. 하지만 Google이라는 막강한 기업이 python이라는 비교적 쉬운 언어를 통해 이번 툴을 무료로 배포하고, 전세계의 다양한 연구자들이 함께 코드를 발전시켜나갈수 있도록 기반을 다져주었기에 Tensorflow의 인기는 다른 툴들보다 나날이 상승할 것으로 보인다. 물론 초반에 나온 코드라 그런지 업데이트가 자주 일어나서 펑션들이 이리저리 옮기다니는 덕분에 코드를 자주 수정해야되는 번거로움이 따르긴 하지만, 이런 불편함을 감수할 정도로 Tensorflow는 많은 편리성을 제공한다. 어찌되었던 이런 시대의 흐름을 타고 필자도 최근 Theano로 사용하던 기계학습 코드를 Tensorflow로 수정하였고 이를 통해 다양한 실험을 진행하고 있다. 여기 올리는 실험 결과들은 비교적 단순한 호기심, 혹은 연구 주제를 발전해 나가는 과정중에 도출된 것이기에 편하게 봐주길 바란다. Comparison of English character recognition performance between ANN and RNN(LSTM). Hyungwon Yang 04.17.17 NAMZ Labs Task Compare the performance achieved by two machine learning techniques: ANN and RNN(LSTM). Train the preprocessed character level corpus, Project Gutenberg’s The Divine Comedy, Complete ebook , with the two techniques and test their p...