Spoken Language Processing

음성특징벡터와 스펙트로그램

햇농nongnong 2023. 4. 6. 19:46

이 글은 Kakao AI Report 의 일부 "커스텀 음성 합성 : 한문장 녹음으로 내 목소리 만들기"를 보고 정리한 글입니다.

 

 

음성 특징 벡터 


음성합성에서의 음성특징벡터

  • 음성 특징벡터 (feature vector) : 텍스트에서 음성으로 변환할 때 곧바로 사람들이 이해하는 음성으로 변환하지 않고, 변환 과정 중 효율적인 음성 정보 표현을 생성. 이를 음성 특징벡터라고 함.
  • 텍스트를 입력받아 음성 특징 벡터를 출력하는 모듈이 음향 모델(acoustic model)

 

음성 특징 벡터의 역할

  • 음성에 들어있는 정보(발음 종류, 성별, 음색, 높이)는 음성 신호 자체에서 쉽게 얻어낼 수 없고, 수학적인 신호 처리 거쳐서 추출.
  • 이 정보를 추출하기 위해서는 주파수 관점에서 관측해야 함.
    • 주파수 : 신호가 1초에 몇 번 진동했는지 나타내는 수치.
    • 소리는 빠르게 진동할수록(주파수가 높을수록) 음이 높게 들림.
  • 자연에서 들을 수 있는 모든 소리다양한 주파수 성분들의 합으로 이루어짐.
  • 푸리에 변환을 하면 특정 시간 길이(프레임)의 스펙트럼 얻을 수 있음.
    • 스펙트럼 : 음성 조각 각각 주파수 성분 얼만큼 가졌는지 보여줌.
  • 음성 전체를 여러 프레임으로 쪼개 얻은 스펙트럼들을 시간 축에 나열하면 스펙트로그램 얻음
    • 스펙트로그램(spectrogram) : 시간에 따른 스펙트럼의 변화
    • 사람의 귀 : 이 스펙트로그램과 유사한 메커니즘
      • 소리에 들어 있는 각각 주파수 성분 추출하는 방식으로 들은 소리에 내재된 정보를 얻음.

 

스펙트로그램


녹색-스펙트럼, 빨강-스펙트로그램

 

  • 스펙트로그램은 진폭(magnitude) 위상(phase)의 두 개의 차원으로 구성된 엄청난 음성 정보를 담고 있는 고해상도의 데이터. 
  • 그 자체로도 훌륭한 음성 특징벡터로 사용 가능.
  • 보통 둘 중 더 많은 음성 정보를 담고 있는 진폭 스펙트로그램만을 취하는 연구들이 많음.
    • 진폭 스펙트로그램 : 가로축-시간, 세로축-주파수, 밝기-해당 성분의 크기 
      (마치 악보와도 비슷 : 가로축-시간에 따른 곡 진행, 세로축-음높이)
  • 진폭과 위상, 스펙트로그램의 모든 정보를 가지고 있다면 역 푸리에 변환으로 손실 없이 음성변환 가능
    • but 근래 음향 모델 기술로 텍스트로부터 고해상도의 진폭 / 위상 스펙트로그램 생성은 쉽지 않음. 
    • 특히 위상 정보는 매우 불규칙 - 진폭보다 훨씬 예측하기 어려운 특성으로 알려져있음.
    • 따라서 많은 음성 합성 연구에서는 음향 모델과 보코더의 중간 정보로써 사용할 음성특징벡터로 저해상도의 데이터인 멜-스펙트로그램 사용.
    • 멜-스펙트로그램 : 스펙트로그램의 진폭 정보만을 취함 + 멜스케일(mel-scale)을 따라 주파수 축 압축해서 얻음.

 

 

  • 위 그림에서 보면 낮은 헤르츠 주파수일수록 멜-스케일이 더 조밀
    • 실제로 저주파 대역에 의미 있는 정보가 집중되어 있음.
    • 멜-스펙트로그램스펙트로그램의 고해상도 주파수 정보중요도에 따라 비선형적을 압축한 결과로 볼 수 있음.
    • 음성 --> 멜-스펙트로그램 변환 과정에서 위상 정보 제거 + 멜-스케일로 손실 압축 거침
      • 수학적으로 멜-스펙트로그램에서 다시 원본 음성으로 무손실 변환은 불가능
      • 보코더 : 변환과정 적절히 수행하여 멜-스펙트로그램에서 음성 생성, 손실 정보들을 모델 내재적으로 예측

 

 

 

 

 

 Reference

  • Kakao AI Report "커스텀 음성 합성 : 한문장 녹음으로 내 목소리 만들기"