한국어 음성인식 (Korean Automatic Speech Recognition)
한국어 음성인식 (Korean Automatic Speech Recognition)
음성인식(Automatic Speech Recognition)이란 인간이 발화하는 언어에 대해서 기계가 인식하고 그 발화문장을 텍스트 형식으로 나타내 주는 것을 의미합니다. 쉽게 말해서 제가 "나 지금 학교에 왔어"라고 말한다면 기계는 그 말을 듣고 지금 말한사람이 “나 지금 학교에 왔어” 라고 말했어! 라고 인식하고 텍스트 형식으로 적어주는 것이라 할 수 있습니다. 인간의 입장에서 생각해보면 음성인식은 그다지 어려워 보이지 않을 수 있습니다만 사실 기계입장에서 음성인식은 꽤나 어려운 문제입니다.
좀더 이해하기 쉽도록 여러분을 기계의 입장이라 생각하고 설명해 보겠습니다.
지금 여러분(한국어만 써온 사람이라 가정)은 새로운 언어(영어)를 배워서 그것이 어떠한 문장이였는지를 종이에 써서 결과물로 제출해야 하는 상황입니다.(음성인식 일을 하게 되는 거죠) 이때 첫 번째로 고려할 사항은 배워야 할 언어 즉 외국어에 대해서 들을 줄 알아야 하는 것입니다. 영어를 처음 접하는 사람입장에서 영어를 모국어로 사용하는 화자의 모든 말 한마디 한마디는 언어라기보다 차라리 외계어라고 생각할 것입니다.
이러한 이유는 바로 자신이 사용하는 언어에서는 사용하지 않던 발음이 영어에 존재하기 때문인데요. 예를들어 'r’이라던가 'th’라는 소리는 한국어에 존재하지 않기 때문에, 영어를 처음 접하는 한국인에게는 이 낯선 소리들로 인해 자신이 이상한 외계어를 듣고 있다고 느끼게 되는 것입니다. 이러한 문제점은 어떻게 해결하면 될까요? 생각보다 간단합니다. 그냥 계속해서 많은 양의 영어음성을 들려주면 되는 겁니다. 그러다보면 자연스럽게 영어의 모든 소리들에 대해 익숙해 지게 되는거죠. 그리고 음성인식에서는 이러한 훈련을 통해 음향모델 (Speech model)을 구축하게 됩니다.
이렇게 영어의 소리에 대해 적응하게 되었다면 두 번째로 고려할 사항은 언어의 자연스러운 결합성을 찾는 것입니다. 언어의 자연스러운 결합성이라 함은 특정 단어 뒤에 따라오는 단어의 적합성을 의미합니다. 예를 들어 "나는 학교에 OO."라는 문장이 있다고 할 때, 여러분들은 저 OO에 들어갈 단어로 어떤것을 생각할 수 있습니까? 여러분은 아마도 “갔어”, “간다”, “안가”, “못가” 등등의 단어는 생각했겠지만 “슬퍼”,"찼어"와 같은 단어는 생각하지 않았을 것입니다.(하더라도 매우 낮은 확률일 것입니다) 위와같은 언어의 자연스러운 결합성은 여러분들의 일상생활속에서 이미 터득하고 사용하고 있습니다.
가끔 여러분의 친구가 “야 그 음식점 멋있더라” 라고 말하더라도 당신은 “야 그 음식점 맛있더라” 라고 들을수 있고, “야 그 음시정(사람이름) 멋있더라” 라고 이해할 수도 있습니다. 말한 사람은 정확히 "야 그 음식점 멋있더라"라고 이야기 했음에도 불구하고 듣는 사람은 다양한 가능성으로 해석할 수가 있게 되는 것이죠. 이때문에 언어의 자연스러운 결합성은 중요한 훈련사항이고 이는 음성인식에서 언어모델 (Language model)을 구축하게 됩니다. 음향모델처럼 언어모델도 많은 데이터를 통해 훈련해서 언어에 익숙하게 만들어줘야 함으로 방대한 언어데이터를 필요로 합니다.
이처럼 음성인식은 음향모델(Speech model)과 언어모델(Language model)을 잘 훈련시키는 것이 목적이며, 이 두 모델이 잘 훈렴됨에 따라 음성인식의 성능도 향상되게 됩니다. 음성인식을 구현하기 위한 툴은 주로 HTK가 사용되어왔지만 저는 Kaldi를 이용하였으며, 언어모델을 위해서 ‘srilm’ 툴을 사용하였습니다.
Kaldi: http://kaldi-asr.org/
srilm: http://www.speech.sri.com/projects/srilm/
모델 훈련에 대한 주요 사항들은 다음 포스팅에서 언급하겠으며 지금은 음성인식 데모를 보여드리도록 하겠습니다. 우선 저는 음향모델 훈련을 위해서 서울말 낭독체를 이용하여 117명분(대략 1400시간)의 발화녹음자료를 사용하였으며, 언어모델의 경우 음향모델을 위해 사용한 서울말 낭독체입니다.
- 음향모델: 서울말 낭독체, 언어모델: 서울말 낭독체
Hyungwon Yang
안녕하세요. 음성인식, 딥러닝 분야를 연구하고 있는 대학원생입니다.
답글삭제구글 검색 도중에 양형원님의 포스트 글을 잘 보았습니다.
HTK 이외 Kaldi Toolkit을 이용하셨는데, HTK처럼 인식기를 구현하는데 필요한 Script와 인식기 구현은 이해뿐만아니라 활용까지 해보았는데, Kaldi 툴킷은 어떤 Script를 필요로하는지 Kaldi 홈페이지에서 하나씩 보더라도 이해가 잘 가지 않습니다..
양현원님께서 보시는 Kaldi 관련 자료나 Kaldi Toolkit을 이용하여 인식과정까지 정리해놓은 자료가 있다면 공유해주시면 안될까요..?
무례하게 댓글 달아서 죄송합니다..(__)
안녕하세요. 같은 관심분야의 분을 만나게되어 너무 기쁩니다. 저는 처음 Kaldi를 공부할 당시에, 자료가 부족해서 고생을 많이 했었는데요. 그때 도움을 많이 받았던 곳이 Kaldi 공식사이트 였습니다. 물론 초반에는 이해가 안가는 부분이 많겠지만 다른 곳에서는 Kaldi를 잘 정리한 곳이 없다보니 공식사이트에 의존할 수 밖에 없었습니다. 혹시 개인적으로 질문하고픈게 있으시다면 kaldi-help라는 구글 그룹에 참여해 보는 것도 좋은 방법입니다. (kaldi-help 사이트 주소: https://groups.google.com/forum/#!forum/kaldi-help) 저도 여기에 질문해서 정보를 얻었으며 다른 분들의 질문을 통해서도 얻었습니다. (제가 궁금해 했던 것들을 역시나 다른분들도 궁금해 해서 질문한게 많더라구요.) 그리고 제가 정리한 kaldi 스크립트는 제가 속한 랩을 서포트 해주는 기업과 관련된 정보가 연관되어 있어 힘들듯 합니다. 하지만 제가 초반에 kaldi training과 decoding 연습할 때 도움을 많이 받았던 timit recipe를 추천해 드립니다. (timit recipe github 주소: https://github.com/kaldi-asr/kaldi/blob/master/egs/timit/s5/run.sh) 그리고 혹시나 추가적인 질문이 있다면 언제든 질문해 주세요.
삭제추가로 제가 속한 EMCS labs 블로그 입니다. 개설한지 얼마 안되어서 아직 정보가 많지 않지만 필요로 하는 정보를 찾을 수도 있을것 같아 알려드립니다. 주소는 다음과 같습니다. https://emcslabs.github.io/
삭제이렇게 성심성의껏 답변해주셔서 감사합니다.^^ Kaldi Toolkit이 다른 Toolkit에 비해 자료가 없는 것을 보고 더 어렵게 느껴졌었는데, 양형원 님께서 포스트해주신 사이트를 참고해서 많은 지식을 습득해보겠습니다. 공부하면서 궁금한 점이 있다면 언제든 질문하겠습니다. 다시 한번 감사드립니다!
삭제작성자가 댓글을 삭제했습니다.
답글삭제음성 인식에 대해 공부 하고 있는 대학생 입니다.
답글삭제이전에 Kaldi의 example중 librespeech라는 것을 돌려 보았는데 어디서 잘못 되었는지 gpu를 사용하지 않고 cpu를 사용하더군요.
현재 시스템은 TITANX (파스칼 이전 버전)4대 병렬로 사용중이며 NVIDIA 드라이버는 375.39버전 CUDA는 8.0사용중 입니다.
혹 문제점이 무엇인지 알고 계신가 해서 덧글을 남깁니다.
실례가 안된다면 현재 사용중인 시스템의 구성도 알고 싶습니다.
감사합니다.
-------------------------------------------------------------------------------------
Sanghong Kim, Bachelor Course
Department of Electronic Engineering Inha University
916 Hi-tech Center, 100 Inha-Ro, Nam-Gu
Incheon, 22212, South Korea
HP: +82-10-3128-0920 | ikdk5559@naver.com
sanghong.kim@inha.edu
-------------------------------------------------------------------------------------
안녕하세요. kaldi는 gpu를 지원하긴 하지만 모든 훈련에 걸쳐서 gpu 훈련을 지원하지 않고 dnn 훈련에서만 지원하고 있습니다. 저같은 경우 steps/nnet2/train_multisplice_accel2.sh을 이용해서 gpu 훈련을 진행했는데요. gpu를 동작하기 위해서는 train_multisplice_accel2.sh 내부에 "num_threads"라는 파라미터값이 있습니다. 이 값을 1로 잡아주면 gpu가 동작되구요 그 외에 경우에는 셋팅하신 숫자만큼의 cpu thread를 나눠서 동작합니다.
삭제추가로 제가 데이터 훈련할 때, 진행했던 절차는 제 깃헙 kaldi_recipe/k1에 나와있는 순서에서 크게 벗어나지 않으니 참고해 주시기 바랍니다. 바뀐다면 dnn 스크립트를 변경해보고 rnnlm-rescoring를 추가로 적용하는 정도가 될 것 같습니다. 간략히 진행 순서를 알려드리면 : mono train(mono) > triphone train(tri1) > lad+mllt train(tri2) > sat train(tri3) > dnn train with tri3 result(tri4) 입니다. 참고로 SGMM은 스킵하고 있습니다.
삭제빠른 답변 감사합니다.
삭제kaldi의 구조에 대해서 공부를 하고 있었는데 많은 것을 배워 갑니다.
추가적으로 Git hub에 올리신 Korean_ASR에 대해 보았을 때 path에 Speech_to_Text라는 것이 추가 되어 있던데 어떤 library인지 알고 싶습니다.
아 Korean_ASR에 path.sh은 지워져 있어야 함에도 불구하고 제가 업데이트 할 때, 그걸 지우지 않고 업데이트 했네요^^;; 지금 수정해서 다시 푸쉬했습니다. path에 text-to-speech는 (아마 text-to-speech를 speech_to_text로 언급하신것 같은데요. 제가 확인해본 결과 path상에는 speech-to-text가 없네요)는 Korean_ASR 툴과 상관없이 제가 개인적으로 공부하던 TTS 코드를 모아둔 곳입니다. 이 패스가 우연찮게 걸려버렸습니다.
삭제아 그렇군요! path에 있어서 어떤것으로 대체 하여야 하는지 고민하고 있었습니다.
답글삭제감사합니다!
음성인식 모델리을 해보고 싶은 대학생입니다. 이제 막 입문한 상태라 이것저것 알아보는 도중에 이 글을 읽었는데 도움이 많이 됐습니다.
답글삭제모델링을 할 때 Kaldi 말고 Caffe프레임워크로도 구현 가능한가요?
그리고 데모영상에서 구현 하신것들 따라서 해보고 싶은데 코드 공유가 가능한가요!!?ㅠㅠ
반갑습니다. 음성인식을 할 때, 대표적인 툴이 HTK와 Kaldi가 있는데요. Caffe로는 구현해본적이 없었고 스피치와 관련없는 테스크를 머신러닝 용도로 사용 한적은 있었습니다. 물론 순수하게 딥러닝을 이용해서 ASR을 해나가는 논문들을 보긴 했는데요(구글, 바이두에서 TTS를 포함해서 ASR도 시도하고 있는걸로 압니다), 결과가 아직까지 좋지 않을걸로 알고 있습니다. 그리고 본 영상에 나온 ASR 코드는 제 깃헙에 공유한 상태입니다.
삭제답변감사합니다!!
삭제제가 이미지인식쪽을 하면서 Caffe로 학습을 시키고 있는데 음성인식 쪽은 Caffe말고 말씀해주신 HTK나 Kaldi로 하는게 입문하기에 좋은가요??
그리고 몇 가지 더 여쭤보고싶은데 메일주소 알려주시면 정말 감사하겠습니다!!
이미지 인식을 위해 머신러닝을 공부해오셨다면 아마 다양한 머신러닝 툴들이 있다는걸 알고 계시리라 생각합니다. 사용하고 계신 Caffe를 포함해서 Torch, Theano, 그리고 요즘은 Tensorflow까지 다양한 머신러닝 툴들이 각자의 장단점을 갖고있는데요. 물론 언급한 툴을 통해서도 ASR을 구현할 수 있겠지만, 그걸 진행해나가는 과정이라던가 전문적으로 음성모델이나 언어모델의 자잘한 부분들을 구현해주는 코드는 칼디만큼 잘 구현한데는 없다고 생각합니다. 따라서 ASR을 하고싶으시다면 조금은 힘들겠지만 칼디로 진행하시길 추천합니다. 우선 Bash를 하실줄 안다면 칼디 코드를 읽고 실행하는데는 어려움이 없으며, 추가적으로 C++, perl, python 까지 할줄 아신다면 더 많은 내용을 쉽게 이해하실수 있을겁니다. 하지만 뒤에 추가사항은 몰라도 칼디를 처음배우실 때 큰 문제가 되진 않습니다.
삭제빠른답변 감사합니다! 이미지 인식을 하면서 학습 Data Set들을 모으는게 꽤나
삭제오래 걸렸는데 음성인식쪽도 음성 데이터들을 모으는데 많이 어려움이 있나요?
음성인식을 위한 데이터를 모으는데도 꽤나 많은 시간과 노력이 필요합니다. 기본적으로 웹 크롤러를 이용해서 데이터를 모으지만 그렇게 모아지는 음성파일들은 대부분 노이즈가(배경음악, 떠드는 소리, 다른 화자의 발화가 겹치는등) 삽입된 상태라서 사용하기가 힘든경우가 많습니다. 물론 운좋게 좋은 데이터를 수집하거나 수작업을 통해 깨끗한 부분을 가져오더라도 그 데이터에 대한 전사작업이 필요하기 때문에 많은 시간이 들 수밖에 없습니다. 그리고 우리가 필요한 데이터가 몇백시간의 음성 데이터인데 이런것들은 실제로 모으고 정제작업하고 전사작업하는데에는 많은 불편사항들이 있습니다^^;;(데이터 작업에 많은 시간과 돈이 들어간다는 의미죠) 그래서 저희쪽에서도 영어 음성인식을 구현할때는 LDC에서 구매하였고 한국어 파일의 경우 구하기가 그 보다 어려워 자체적으로 웹 크롤러를 통해 모으는 작업을 하고있습니다.
삭제아 역시 크롤러가 답이군요 ㅠㅠ.
삭제혹시 위에서 게시하신 데모영상을 구현하기 위한 튜토리얼이나 방법들은 따로 포스팅 하시거나 공유하시지는 않으시는건가요!?
아 사실 간단한 칼디 튜토리얼은 후배들이나 제 주변에 관심있는 지인들을 위해서라도 작성하려고 계획중에 있었습니다. 그런데 연구하는게 있다보니 글 쓰는게 늦어지게 되었네요^^;; 이번 달이나 다음달 중으로 꾸준히 써보려고 합니다.
삭제아아 넵 감사합니다!
삭제칼디 공홈에서 따라해보겠습니다 ㅎㅎ
고재성님의 댓글이 지워져서 복원합니다.
삭제Korean_ASR 예제에서 Change 'kaldi' name variable. (initial setting: kaldi=/home/kaldi)
이부분은 kaldi= kaldi폴더가 있는 경로를 써주면 되나요?
run_asr.sh을 실행시키면
if [ $model_name == "krs" ] || [ $model_name == "diy" ] ; then
echo "ASR model: $model_name"
else
echo "Model name: $model_name is not present in the model directory."
echo "Place the model directory into ./models folder and reactivate this code."
echo "Provided models are as follows: "
echo "1. krs : Trained model based on Korean Readspeech corpus."
echo "2. diy : Trained model based on your own corpus."
&& exit 1 [40번째 줄 ]
fi
"&&" unexpected 이 에러가 뜨는데 어떤부분이 문제인가요?
아 그리고 sh run_asr.sh krs로 실행하면 위와같이 에러가 뜨는데
./run_asr.sh krs로 하면 실행이 되는건 왜그런건가요?
1. kaldi에다가는 현재 local 컴퓨터에 칼디가 설치되어있는 폴더 경로를 적어주시면 됩니다. 저는 /Users/hyungwonyang/kaldi 여기에 설치해서 그렇게 설정하고 사용합니다.
삭제2. run.sh 실행과 관련해서 버그가 있었네요. 현재 그 부분 수정해서 깃헙에 푸쉬했습니다. pull해서 다시 실행해 보시기 바랍니다. 참고로 git pull 하시고, 1번에서 언급한 폴더 지정하시고 나서 path.sh 존재하는거 지워주세요. 그리고 run_asr.sh 돌리시면 잘 동작할 겁니다.
감사합니다 잘 동작합니다^^
삭제이제 칼디를 이용한 한국어 음성인식 구현하기 튜토리얼을 막 올리기 시작했어요. 꾸준히 올리도록 노력하고 있으니 한번 참고해 주세요 ^^
삭제안녕하세요. 5월인가 대구에서 한번 뵈었죠. ^^
답글삭제한국어 음성인식 하시는분들 많이 모여계신 페이스북 그룹이 있어 소개드립니다. 남교수님 연구실분들도 같이 의견교류하시면 어떨까합니다.
https://www.facebook.com/groups/soundly/
안녕하세요 ^^ 이렇게 활발한 교류의 장이 열린 좋은 곳이 있었네요. 소개해 주셔서 감사합니다.
삭제안녕하세요 정말 자세한 자료 잘 보고 있습니다 감사합니다
답글삭제아직 따라해보기 수준밖에 안되는 학생입니다. 근데 따라해 보는 도중 여러 문제를 해결하다 마지막 쯤에 막혔습니다.
root@ubuntu:/home/jsman/Korean_ASR-master/Korean_ASR-master# . run_asr.sh krs
ASR model: krs
path.sh is newly wirtten.
Start recording...
Input File : 'default' (alsa)
Channels : 1
Sample Rate : 16000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:00:08.19 [00:00:00.00] Out:123k [ =|= ] Clip:0 ^C
Aborted.
Extracting the features from the input data...
run.pl: job failed, log is in tmp/log/make_mfcc_trans_data.1.log
Decoding the recorded speech.
run.pl: job failed, log is in tmp/log/decode.1.log
이렇게 run.pl 에서 실행이 안되구 로그가 저기에 있다는 말이 나옵니다.
그래서 Kaldi/egs/wsj/s5/utils/run.pl 로 가서
run.pl의 어느 부분에 오류가 났나 확인해보니
마지막 263줄부터 if문에서 오류가 난 것을 확인했습니다 근데 코드 분석에 어려움을 겪고있어서 질문 드립니다
왜 오류가 나는 것인지 알려주실 수 있나요 ?
우선 최초로 발생된 에러가 mfcc를 추출하는 단계에서 발생하였네요. tmp/log/make_mfcc_trans_data.1.log 로그를 열어보시고 ERROR가 적혀진 라인을 한번 보여주시겠어요?
삭제# compute-mfcc-feats --verbose=2 --config=models/conf/mfcc.conf scp,p:tmp/log/wav_trans_data.1.scp ark:- | copy-feats --compress=true ark:- ark,scp:/home/jsman/Korean_ASR-master/Korean_ASR-master/tmp/mfcc/raw_mfcc_trans_data.1.ark,/home/jsman/Korean_ASR-master/Korean_ASR-master/tmp/mfcc/raw_mfcc_trans_data.1.scp
삭제# Started at Mon Oct 9 18:41:04 PDT 2017
#
bash: line 1: copy-feats: command not found
bash: line 1: compute-mfcc-feats: command not found
# Accounting: time=0 threads=1
# Ended (code 127) at Mon Oct 9 18:41:04 PDT 2017, elapsed time 0 seconds
입니다
구글링을 통해
bash: line 1: copy-feats: command not found
bash: line 1: compute-mfcc-feats: command not found 를 찾아봤습니다
못찾는 이유가 path를 설정해주지 않아서라고 하더라구요
그럼 kaldi를 가르킬 수 있게 path만 설정해주면 되나요 ??
네. path.sh을 제대로 읽어오지 못해서 생기는 문제가 맞습니다. 기존에는 path.sh 자체를 편리하게 생성하고자 제가 임의로 코드를 수정했던 부분인데 에러가 자주 발생하는것 같습니다. 그래서 이 부분을 재수정하여 깃헙에 새롭게 푸쉬했습니다. git pull 하셔서 실행해 보시기 바랍니다.
삭제ㅠㅠ 같은 에러가 뜹니다
삭제root@ubuntu:/home/jsman/Korean_ASR-master/Korean_ASR-master# . run_asr.sh krs
ASR model: krs
path.sh is newly wirtten.
Start recording...
Input File : 'default' (alsa)
Channels : 1
Sample Rate : 16000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:00:05.63 [00:00:00.00] Out:81.9k [ | ] Clip:0 ^C
Aborted.
Extracting the features from the input data...
run.pl: job failed, log is in tmp/log/make_mfcc_trans_data.1.log
Decoding the recorded speech.
run.pl: job failed, log is in tmp/log/decode.1.log
ASR result:
ㅠㅠ
git pull 이후에도 그렇다면 삭제후 다시 다운로드 해주시겠어요? 업데이트 된 코드에서는 path.sh is newly written.이란 멘트가 뜨지 않거든요.
삭제root@ubuntu:/home/jsman/Korean_ASR-master/Korean_ASR-master# . run_asr.sh krs
삭제ASR model: krs
Start recording...
Input File : 'default' (alsa)
Channels : 1
Sample Rate : 16000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:00:02.56 [00:00:00.00] Out:32.8k [ -==|==- ] Clip:0 ^C
Aborted.
Extracting the features from the input data...
run.pl: job failed, log is in tmp/log/make_mfcc_trans_data.1.log
Decoding the recorded speech.
run.pl: job failed, log is in tmp/log/decode.1.log
ASR result:
ㅠㅠ path.sh is newly written은 안뜨는데 똑같이 뜹니다
정말 죄송하고 감사합니다
괜찮습니다. ㅎㅎ 처음에는 모든게 에러뿐이고 어렵기만 하죠. 우선 생각해볼수 있는 문제가 몇가지 있는데 한번 테스트 해보시기 바랍니다. 1. 칼디 자체가 제대로 설치되어있는지 확인해 주세요. log에서 여전히 cpp 코드를 못찾고 있다고 한다면 칼디 코드가 제대로 컴파일링 되었는지 확인해보세요. 2. path.sh은 kaldi path 정보를 인자로 받습니다. 이 kaldi path가 오타없이 제대로 된 것인지 확인해보세요. 3. 실행을 ". run_asr.sh krs" 대신 "bash run_asr.sh krs"로 해보세요. 이 조차도 안된다면 path.sh이 run_asr.sh 내부에서 제대로 읽어오도록 수정을 해주셔야 합니다. 위의 총 3가지 답변은 "tmp/log/make_mfcc_trans_data.1.log" 파일에서 "copy-feats: command not found"가 발생하는 상황을 가정하고 답변한 것입니다.
삭제안녕하세요. 음성인식에 대해서 막 공부하기 시작한 학생입니다. 제가 github에서 이 코드를 실행을 해보았는데 녹음하는 과정이 없이 바로 결과로 넘어가서 그런데 혹시 꼭 mac이나 우분투환경에서 가능한것인지 궁금해서 질문드립니다....
답글삭제칼디는 linux 환경에서만 작동합니다. 윈도우에서 테스트 하시는 거라면 안됩니다. 다른 cent os같은 곳에서는 테스트를 해보지 않아 어떻게 되는지 모르겠습니다. 저는 mac과 ubuntu에서만 테스트를 진행했습니다.
삭제안녕하세요. 음성인식을 갓 시작한 대학생입니다!!! 혹시 무례가 안된다면 질문좀 해도 될까요???????? 그 음향모델과 언어모델을 다른 툴에서 만드셨는데 그런 이유가 있는건가요???!!! 감사합니다!!
답글삭제칼디는 언어모델을 생성할 때 SRILM 외부 툴킷을 지원하며 이에 대한 사용을 권장하고 있습니다. 물론 다른 외부 툴킷을 이용해도 됩니다. 다음 사이트(http://kaldi-asr.org/doc/data_prep.html#data_prep_grammar)의 하단을 보면 확인하실 수 있구요. 칼디 스크립트에서 사용되는 외부 툴킷들은 대부분 칼디에서 추천하거나 실제로 사용하는 것들이기때문에 (그 툴킷에 대한 신뢰도가 높기 때문에) 사용하는 것이며 그 외에 특별히 다른 이유가 있는것은 아닙니다.
삭제안녕하세요... 헤매고 헤매다 찾은 이 페이지가 정말 많은 도움이 되네요. 정말 감사합니다! 저는 HTK를 gesture recognition에 활용하고 싶어서 맨땅에 헤딩하는 심정으로 처음부터 파고 있는데요, 가능은 한 것인지 사실 확신이 없어서요... 혹시 어찌 생각하시는지 여쭤도 될까요? 혹은 비슷한 경우를 보신적이 있다면 링크 공유나 조언 부탁드립니다. 다시한번 감사해요 ^^
답글삭제gesture recognition이라면 예전에 python으로 몇가지 툴을 사용하여 손의 움직임에 따라 모양과 숫자를 인식하는것 정도만 해봤었습니다. 그리고 HTK를 이용하셔서 gesture recognition을 하신다면 음성인식에서 사용하던 인풋(mfcc)과 아웃풋(phone)을 각각 gesture 이미지와 특정 gesture 결과로 넣어주면 될 듯 합니다만.. 저는 해본적이 없어서 잘 모르겠습니다. 저라면 gesture recognition을 위해서 CNN을 이용할 듯 합니다.
삭제안녕하세요. 올려주신 소스 덕분에 많은 도움 받았습니다.
답글삭제너무 너무 감사드립니다.
그런데, tutorial 파트에서 올려두신 음성 파일은 잘 인식되지만, 제 목소리는 인식이 잘 안되고 있습니다.
다양한 목소리로 학습을 시켜서 모델을 만들고 싶은데, 어찌해야 할지 모르겠습니다.
train 관련된 sh, py 파일이 많아서 가이드 좀 주셨으면 하고 글 남깁니다.
Korean_ASR을 사용하셔서 음성인식을 시도했다는 거로 이해해도 될까요? 그렇다면 혹시 인식을 실행하실 때 어떤 말을 하셨나요? 예를들어 일상생활에서 사용하는 말을 하였다면 당연히(?) 잘 안 될 겁니다. 왜냐하면 그 음성인식 모델은 우리말 낭독체라는 소량의 소설 텍스트 데이터만 가지고 훈련했기 때문입니다.(이 부분을 언급했어야 했는데 안했네요.) 직접 "기차도 전기도 없었다"와 같이 모델이 훈련 해본 문장을 발화해 보신다거나 소설에서 사용된 문장을 사용하신다면 결과가 좀 더 좋을 것입니다.
삭제이렇게 답변 달아주시니 너무 감사드립니다.
삭제Korean_ASR 을 이용해서 음성인식을 시도한 것이 맞습니다.
말씀하신데로 '기차도 전기도 없었다'와 같이 훈련된 음성을 이용했지만, 억양이 틀려서인지 인식이 잘 안되었습니다.
억양까지 비슷하게 했을때 인식률은 좋았고요.....
그래서 제 목소리를 비롯해 더 많은 데이터를 이용하여 모델을 만들고 싶은데, 관련된 파일이 너무 많아서 시작점을 못찾고 있는 상황이었습니다.
기존 모델에 추가로 학습 시킬수 있는 기능이 있는지도 궁금합니다.
죄송스럽지만, 다시 한번 답변 부탁드립니다.
작성자가 댓글을 삭제했습니다.
답글삭제안녕하세요! 음성인식에 관심을 갖고 공부하고 있는 학생입니다! 올려주신 소스와 잘 정리된 페이지 덕분에 많은 도움을 받았습니다! 감사합니다 :] 다름이 아니라 튜토리얼대로 asr를 해보는 중인데 sh run_asr.sh krs를 실행하면 ASR model: krs
답글삭제run_asr.sh: line 55: .: path.sh: file not found 라는 에러가 떠서 이유를 알 수 있을까 글 남깁니다! 답변주시면 감사하겠습니다ㅠㅠ
run_asr.sh을 돌리는 폴더에 path.sh이 없어서 생기는 에러입니다. path.sh이 있는지 확인해 보시고 없다면 새롭게 git에서 clone하셔서 path.sh의 존재여부를 확인해주신 다음 돌려보시기 바랍니다.
삭제