Skip to content

지식베이스와 딥러닝을 통한 영어 - 한글 Grapheme-to-Phoneme 모델의 성능 향상 연구

Notifications You must be signed in to change notification settings

pnucse-capstone/capstone-2023-1-04

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 

Repository files navigation

지식베이스와 딥러닝을 통한 영어 - 한글
Grapheme-to-Phoneme 모델의 성능 향상 연구

1. 프로젝트 소개

  • 한국어와 영어가 혼용된 텍스트를 올바른 발음으로 변환하는 것을 목표로 한다.
  • 지식베이스와 딥러닝 방식을 결합하여, 기존의 TTS 보다 혼용 텍스트에 대해서 높은 정확도를 달성하고자 한다.

2. 팀소개

RNG 아니조 팀

권민규
  • 데이터 수집 및 분석
  • 모델 설계
  • 우리말샘 데이터 전처리 및 모델 구현
  • 추가 데이터 수집 및 전처리
  • jimbo98@pusan.ac.kr
고상현
  • 데이터 수집 및 분석
  • 모델 설계
  • IPA 변환 규칙 구현 및 모델 최적화
  • 모델 성능 평가
  • trmy894@gmail.com
박건우
  • 데이터 수집 및 분석
  • 모델 설계
  • IPA 데이터 전처리 및 모델 구현
  • 데이터 통계 도출
  • swa10000@pusan.ac.kr

3. 구성도

전체 구성도

플로우차트

전체문장에서 영단어들이 분리되어 입력된다.


1. 알파벳 단어 하나만 입력으로 들어올 시, 그대로 알파벳 이름을 출력한다.

2. 지식 베이스에 있는 단어가 입력으로 들어올 시, 지식 베이스에 있는 발음으로 출력한다.

3. 위에 해당하지 않는 대문자로만 이루어진 단어들은 단어마다 알파벳 이름 그대로 출력한다.
ex)DPICM = 디피아이시엠

4. 위에 해당하지 않는 단어가 입력으로 들어오면, 모델을 사용해서 발음을 출력한다.

한영혼용이미지

-> Wife한테 다녀와도 되냐고 물었더니 ok 했어서 물어봤어요 But your friend랑 같이 있으면 I am신뢰에요~

-> 와이프한테 다녀와도 되냐고 물었더니 오케이 했어서 물어봤어요 벗 유어 프렌드랑 같이 있으면 아이 앰신뢰에요~


추후에 원하는 문장을 입력할 수 있는 웹페이지와 TTS 모델을 결합 예정

파일 구조

project                         
├── data                          // 데이터베이스 파일과 tokenizer pickle 파일
│   ├── analysis_results          
│   │    └── our_sam_counter_results.txt   // 전처리 결과          
│   ├── database
│   │    ├── alphabet_database.db          // 알파벳 데이터베이스  
│   │    ├── eng_database.db               // 외래어 데이터베이스
│   │    └── ipa_database.db               // IPA 데이터베이스  
│   └── pickles                           // tokenizer pickle 파일
│       ├── eng.pickle                        
│       ├── kor.pickle
│       ├── NanumSquareR
│       └── tokenizer.pickle
├── models                       // 모델
│   ├── config
│   │   ├── params1              // 모델 파라미터
│   │   └── params2              // 모델 파라미터2
│   ├── model15.pt               // 사용할 모델
│   └── model21.pt               // 사용할 모델2
├── src                          // 소스 코드 모음
│   ├── analysis
│   │   ├── db_word_checker.py   // 통계용
│   │   └── our_sam_counter.py   // 통계용            
│   ├── database                      
│   │   ├── definition
│   │   │   └── data_def.py      // dataclass                    
│   │   ├── db_maker.py          // DB 생성 코드 
│   │   └── db_manager.py        // DB 관리 코드
│   ├── picklers                          
│   │   ├── pkl_alp_maker.py    // alphabet DB생성을 위한 pickle 생성 코드
│   │   ├── pkl_ipa_maker.py    // ipa DB생성을 위한 pickle 생성 코드
│   │   └── pkl_sam_maker.py    // 외래어 DB생성을 위한 pickle 생성 코드           
│   ├── transformer_architecture // 딥 러닝 모델 관련 코드
│   │    ├── __init__.py
│   │    ├── predict.py          // 모델 예측 코드
│   │    ├── trainer.py          // 모델 학습 코드
│   │    ├── utils.py            // utils
│   │    └── tools        
│   │        ├── learning.py        
│   │        └── unicode.py       //기타 유니코드
│   └── main.py                   // 실제 main 코드 
└── requirements.txt              // 패키치 설치 파일

4. 시연 영상

2023년 전기 졸업과제 04 RNG 아니조

5. 설치 및 사용법

  1. 구동환경 : pytorch 2.0.1 / CUDA 11.7
  2. 패키지 : requirements.txt 참고
  3. 설치
  • 버전에 맞는 pytorch 및 cuda 설치

  • 패키지 설치

pip install -r requirements.txt
  1. 사용법
python main.py 

"텍스트를 입력하세요: " 라는 문구가 나오면, 발음이 궁금한 영단어나 한글/영어 혼용 텍스트를 입력한다.

About

지식베이스와 딥러닝을 통한 영어 - 한글 Grapheme-to-Phoneme 모델의 성능 향상 연구

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages