포르투갈어 음성 자동 음절 분할 알고리즘 구현

본 논문은 포르투갈어 음성 파일의 음절을 자동으로 구분하기 위해 신호의 에너지 엔벨로프를 이용한 알고리즘을 제안한다. MATLAB 기반 구현을 제공하며, 임계값 기반 검출과 ‘슈퍼‑음절’ 처리 과정을 통해 약 70%의 정확도로 50개 단어를 실험하였다. 임베디드 시스템 적용 가능성과 교육·의료 분야 활용 가능성을 강조한다.

포르투갈어 음성 자동 음절 분할 알고리즘 구현

초록

본 논문은 포르투갈어 음성 파일의 음절을 자동으로 구분하기 위해 신호의 에너지 엔벨로프를 이용한 알고리즘을 제안한다. MATLAB 기반 구현을 제공하며, 임계값 기반 검출과 ‘슈퍼‑음절’ 처리 과정을 통해 약 70%의 정확도로 50개 단어를 실험하였다. 임베디드 시스템 적용 가능성과 교육·의료 분야 활용 가능성을 강조한다.

상세 요약

제안된 알고리즘은 음성 신호의 전반적인 에너지 변화를 나타내는 엔벨로프(envelope)를 추출하고, 이를 기반으로 음절 경계를 판단한다. 구체적으로는 입력 wav 파일을 먼저 정규화한 뒤, 절대값을 취하고 저역통과 필터(예: 20 ms 이동 평균)를 적용해 부드러운 엔벨프를 만든다. 이후 전체 평균 에너지와 표준편차를 이용해 동적 임계값을 설정하고, 엔벨프가 임계값을 초과하는 구간을 ‘잠재 음절 구간’으로 정의한다. 이 구간 내부에서 추가적인 피크 검출을 수행해 실제 음절 시작과 끝을 정밀하게 조정한다.

음절이 연속적으로 나타나면서 엔벨프가 하나의 큰 구간으로 합쳐지는 경우를 ‘슈퍼‑음절(super‑syllable)’이라 명명하고, 구간 내에서 최소 피크 간격(minimum inter‑peak distance)과 에너지 감소율을 이용해 자동으로 분할한다. 이러한 단계는 복합 자음군이나 모음 연속이 길어지는 경우에도 일정 수준의 분리 효과를 제공한다.

MATLAB 구현은 파일 입출력, 신호 전처리, 임계값 계산, 피크 검출, 그리고 결과 시각화를 하나의 스크립트 혹은 함수 집합으로 구성한다. 코드가 비교적 간결하고 외부 라이브러리에 의존하지 않기 때문에 iOS와 같은 임베디드 환경에 이식하기 용이하다. 다만, 현재 버전은 고정된 임계값 파라미터와 간단한 피크 검출 로직에 의존하므로, 강세, 억양, 배경 잡음 등에 민감하게 반응한다. 특히, 비음, 파열음 등 에너지 급변이 적은 음소는 검출률이 낮아 70% 수준에 머문다.

성능 평가는 50개의 포르투갈어 단어(총 200여 개 음절)를 대상으로 수동 라벨링과 비교했으며, 정확도는 70%였지만 재현율과 정밀도는 음절 길이와 발음에 따라 크게 변동한다. 향후 개선 방안으로는 멜 주파수 켑스트럼 계수(MFCC)와 같은 스펙트럼 기반 특징을 결합한 하이브리드 모델, 적응형 임계값 설정, 그리고 머신러닝 기반 후처리 단계 도입이 제시된다.

요약하면, 본 알고리즘은 구현의 단순성, 실시간 처리 가능성, 그리고 임베디드 적용 용이성을 강점으로 하지만, 음성학적 다양성을 충분히 반영하지 못해 정확도 향상이 필요하다.


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...