[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.11.12
📕 프로젝트 작업 내역
- 음성 변환 모델 탐색 & 품질 개선 방안 검토
- 음성 유사도 채점 모델 선정
- 캐릭터 외주 진행
📗 회의록
- 회의 일자: 2024년 11월 12일
- 회의 주제: 음성 변환 모델 탐색 & 품질 개선 방안 검토, 음성 유사도 채점 모델 선정, 캐릭터 외주 진행
- 참석자: OOO, OOO, OOO
1. 주요 논의 사항
1) 텍스트 → 음성 변환 모델
① 텍스트 -> 음성 변환 모델 탐색 및 성능 테스트
- TTS 모델 중 MOS 점수가 5점에 가까운 모델(TTS(VITS)논문.pdf)들을 선정
- 선정된 모델:
- FastSpeech 2 + HiFiGAN
- Glow-TTS + HiFiGAN
- Grad-TTS +HiFiGAN
- VITS
- 성능 테스트 결과
- FastSpeech 2 + HiFiGAN 가 비교적 좋은 성능을 보였으나, 만족스럽지 않음
- 결론
- 내일 추가 모델 탐색 예정
② 음성 변환 모델 추가 학습 진행 여부 결정
- 사전 학습된 음성 변환 모델에 추가 학습을 해도 MOS 점수가 약 0.2점 증가하는 등 효과가 미미함을 확인(TTS 추가학습 논문.pdf)
- 결론
- 추가 학습을 진행하지 않기로 결정
- 대신 생성된 음성 파일의 배경 소음, 속도 등은 필터링을 통해 개선하기로 결정
③ 음성 변환 모델 필터링
- FastSpeech 2 + HiFiGAN 으로 생성된 음성에 대해 필터링 진행
- 음성 파일의 속도를 느리게 설정(주 사용자가 초등학생이기 때문)하고 배경 소음을 제거했으나, 발음이 뭉개지고 기계음이 여전히 들림
- 결론
- 필터링 테스트 코드 보완 필요
2) 캐릭터 레퍼런스 취합 및 외주 진행
- 캐릭터 레퍼런스 자료를 취합하여 전달 완료
3) 음성 유사도 채점 모델
① 음성 유사도 채점 방식 구체화
- 음성 유사도 채점 항목: 피치, 포먼트, MFCC, 타이밍
- 피치: 음성의 높낮이(억양, 리듬) 평가. 감정 표현 및 강조에 중요
- 포먼트: 모음 발음의 정확도 평가. 각 모음은 고유한 포먼트 주파수 패턴을 가짐
- MFCC: 발음의 명확성 및 구별성 평가 (청각적 유사성 측정)
- 타이밍: 발화 속도 평가
- 유사도 평가 방식: 코사인 유사도 vs 유클리드 거리
- 코사인 유사도: 두 벡터 간의 방향성(패턴의 유사성)을 평가. 크기보다 형태(발음 패턴의 유사성)를 평가할 때 유리
- 결론
- 코사인 유사도가 발음 비교에 적합하다고 판단
- 특히 피치, 포먼트, MFCC는 주파수나 스펙트럼 패턴을 다루므로 코사인 유사도 사용을 결정
- 음성 유사도 채점 항목 및 점수 분배 시안 결정
② 음성 유사도 채점 툴킷 선정 및 출력값 예상
- 사용 툴킷
- Kaldi: 고성능 음성 인식 툴킷으로, 음성 피처 추출과 유사도 분석에 사용됨. 필요한 음향 모델과 피처를 추출하여 음성 간 유사도 평가에 기여 *리눅스 환경에서 실행됨
- Montreal Forced Aligner (MFA): 음성과 텍스트의 정렬을 자동으로 수행하여 정확한 음소 구간을 제공함. 음소별로 피치, 포먼트 등 발음 특징을 분석하는 데 필수적
- Librosa: Python 기반의 오디오 분석 라이브러리로, MFCC 추출 및 기본 음향 분석에 사용됨. 다양한 오디오 피처를 쉽게 추출할 수 있어 음성 유사도 평가에 적합함
- Pydub: 오디오 파일의 시간 조정 및 소음 제거를 지원하는 라이브러리로, 음성 전처리에 사용됨. 음성 파일의 발화 속도 및 배경 소음 처리를 통해 평가의 신뢰도를 높임
- SciPy: 신호 처리와 유사도 계산을 위한 Python 라이브러리. 음성 피처 벡터 간의 유사도(코사인 유사도 등) 계산에 활용됨
- PyKaldi: Kaldi를 Python에서 사용할 수 있게 한 라이브러리로, Kaldi의 기능을 Python에서 직접 제어하여 피처 추출 및 분석을 수행함
- 예상 출력값
"This is a sample sentence for pronunciation evaluation"
단어 'This' (구간 1) 비교:
음소 'TH' (단어 'This' 내 음소 1) 비교:
피치 유사도: 0.85
포먼트 유사도: 0.88
MFCC 유사도: 0.76
타이밍 차이: -0.02 초
음소 'IH' (단어 'This' 내 음소 2) 비교:
피치 유사도: 0.90
포먼트 유사도: 0.83
MFCC 유사도: 0.81
타이밍 차이: 0.01 초
단어 'is' (구간 2) 비교:
음소 'IH' (단어 'is' 내 음소 1) 비교:
피치 유사도: 0.82
포먼트 유사도: 0.85
MFCC 유사도: 0.79
타이밍 차이: 0.03 초
2. 다음 과제
- 음성 데이터 API 성능 문제 해결 방안 확정
- TTS 모델 성능 최적화(추가 학습 진행)
- UX/UI 캐릭터 설정 사항 전달
- HuBERT 및 PTAAT 모델 비교 테스트 진행
- 서비스 차별화 전략 및 가치 구체화
📙 내일 일정
- 중간 프로젝트 기획
'TIL _Today I Learned > 2024.11' 카테고리의 다른 글
[DAY 82] 중간 프로젝트_ KST 알고리즘의 활용 (0) | 2024.11.14 |
---|---|
[DAY 81] 중간 프로젝트_ 영어 발음 채점 서비스 구현 (1) | 2024.11.13 |
[DAY 79] 중간 프로젝트_ 영어 발음 채점 서비스 구현 (0) | 2024.11.11 |
[DAY 78] 중간 프로젝트_ 영어 발음 채점 서비스 구현 (2) | 2024.11.08 |
[DAY 77] 중간 프로젝트_ 영어 발음 채점 서비스 구현 (3) | 2024.11.07 |