본문 바로가기

분류 전체보기88

딥러닝 언어모델과 확률적 앵무새 - 2023 서울대학교 AI 연구원 겨울 콜로퀴움 리뷰 2023 서울대학교 AI 연구원 겨울 콜로퀴움 송상헌 교수님의 "딥러닝 언어모델과 확률적 앵무새" 강연을 듣고 리뷰를 남깁니다. 확률적 앵무새 (Stochastic Parrots) 메타인지 인공지능 언어모델은 자연 언어에 대한 실질적인 이해(understanding)를 하고 있는 것이 아니라 단순히 확률에 기반하여 단어의 조합을 결과값으로 반환(return)한다는 점에서 확률적 앵무새. 소통 가능성 (communicability) : 학습 데이터의 문제, 모라베크의 역설, 아스퍼커 증후군(행간의 의미), 맥락 지식(항진 명제) 세계에 대한 지식과 경험을 패턴화 데이터 간섭 현상 사람은 한두번만으로도 대상에 대한 패턴 정보를 얻는 것이 가능 컴퓨터는 충분한 양의 데이터를 통해서 학습을 해야 함. 메타인지 .. 2023. 2. 3.
비원어민 음성인식 및 발음평가 (한국어 발음 교육) 비원어민 음성인식 및 발음 평가 유창성이 떨어지고 문법/표현 오류가 포함된 비원어민 발성에 강인한 음성인식 기술 결국은 데이터. 최대한 많은 비원어민의 잘못된 음성, fluency 낮은 음성을 가지고 학습해야함. 어휘적 문제, 음향적 문제 포함된 다양한 측면의 데이터를 최대한 많이 수집해서 모델링해야함. 이게 비원어민 음성인식의 목표. human expert와 machine score 간의 correlation 을 최대화하는 발음 유창성 평가 기술 발음 평가 : 기계가 못함. 결국은 사람들이 잘 만들어낸 지식을 활용해야 함. 한국인이 /p/, /f/ 구분 잘 못하는데 이걸 어떻게 잘 구분해서 유창성 떨어지는걸 표시할까를 고민 human rater, 음성학자들이 이러한 지식을 잘 만들어 놓아야 함. 우리는.. 2023. 1. 15.
docker에서 jupyter notebook 접속하기 Docker 에서 jupyter notebook 접속 불가 에러 수정 docker 에서 주피터 노트북을 실행하기 위해서는 인터넷 연결과 방화벽이 필요합니다. 먼저 docker 의 container 에 들어간 이후, jupyter notebook 을 실행해봅시다. # 도커 컨테이너 접속 sudo docker start hy_fairseq sudo docker attach hy_fairseq # 주피터 노트북 설치 pip install --upgrade pip pip install jupyter # 주피터 노트북 실행 jupyter notebook --no-browser --allow-root --ip=0.0.0.0 --port=8888 # --no-browser 는 별도의 브라우저를 띄우지 않겠다는 의미 .. 2022. 12. 8.
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.
os.listdir - 파이썬 디렉토리 내 파일 확인, 개수 새기, 파일 다루기 파이썬 내 os 라이브러리를 이용해 폴더 내의 파일명을 나열할 수 있다. os.listdir('폴더 경로') ex) import os file_list = os.listdir('/home/haeyoung/nia12/nia_dataset/data_preprocess/fr_data/') wavfile = [] txtfile = [] g2pfile = [] etc = [] for file in file_list : if file.startswith('g2p') and file.endswith('.txt'): g2pfile.append(file) elif file.endswith('.wav'): wavfile.append(file) elif file.endswith('.txt'): txtfile.append(f.. 2022. 11. 11.
파이썬 문자열 처리 - split, replace, count 파이썬으로 문자열 처리 1) split - 문자열 분리 위와 같이 tab 전의 앞부분만 가져오고 싶을 때 .split('split할 기준')[자른 후 몇번째] 2) replace - 문자열 내의 특정 문자 치환 문자열.replace('바꾸고 싶은 문자열', '바꿀 문자열') 3) count - 문자열 내의 특정 문자 갯수 새기 ex) enter = wrd.count('\n') wrd 변수에 저장된 문자열에서 엔터 개수를 세서 enter 변수에 갯수 저장 예시) file_list = os.listdir('/home/haeyoung/nia12/nia_dataset/data_preprocess/fr_data/') file_path = '/home/haeyoung/nia12/nia_dataset/data_pre.. 2022. 11. 11.
파이썬 shutil 라이브러리로 쉽게 파일 복사하기 파이썬 shutil 라이브러리로 간단하게 파일을 복사할 수 있다. shutil.copyfile('복사할 파일이 있는 경로 주소', '복사물을 위치할 경로 주소') * 파일명이 아니라 경로 path 주소 * 경로는 절대 경로를 써주는 것이 좋다. 예시) import shutil file_list = os.listdir('/home/haeyoung/nia12/nia_dataset/data_preprocess/fr_data/') for file in file_list : file = file.replace('.wav','.txt') g2pfilename = 'g2p' + file if file in fr_data_g2pincluded : print(file, "is here and moved.") before.. 2022. 11. 11.
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.