AI가 만들어내는 음성, 딥러닝 기반 음성합성 솔루션

Selvy deepTTS AI가 만들어내는 음성, 딥러닝 기반 음성합성 솔루션 셀바스AI 음성솔루션 소개페이지 바로가기 xVoice -  딥러닝 기술로 만들어진  셀바스 AI의 음성합성 엔진   음성합성 기술은 기계가 사...

2019년 1월 8일

'Selvy deepTTS' 개발 발표회


드디어~ 'Selvy deepTTS' 개발 발표


셀바스AI의 딥러닝 기반의 음성합성기인 Selvy deepTTS의 사내 발표회가 지난 2018년 10월 진행되었습니다. 이 발표회를 통해 사내 임직원들에게 Selvy deepTTS의 특징들을 설명는 시간을 가졌습니다.

우리 팀~ 다들 수고 하셨어요~






2018년 9월 22일

AI가 만들어내는 음성, 딥러닝 기반 음성합성 솔루션


Selvy deepTTS

AI가 만들어내는 음성, 딥러닝 기반 음성합성 솔루션

셀바스AI 음성솔루션 소개페이지 바로가기



xVoice - 딥러닝 기술로 만들어진 셀바스 AI의 음성합성 엔진

 음성합성 기술은 기계가 사람처럼 말하기를 원하는 인간의 바램으로부터 시작되었습니다. 지난 수십 년간 음성합성 기술은 많은 연구자들의 노력으로 획기적인 발전을 거듭해왔습니다. 특히, 최근의 딥러닝을 활용한 음성합성 기술은 인간이 말할 때의 억양이나 미세한 호흡까지도 잘 표현합니다. 이러한 기술의 발전은 자연스러운 음성을 만들어내는 것에 그치지 않고, 감정이나 개성을 표현하는 기술로 발전 하고 있습니다. 

 우리는 지난 몇 년간 딥러닝 기반의 음성합성 기술에 집중해왔으며 상용화를 위한 우리의 목표를 달성하게 해줄 여러 의미 있는 진전을 찾아내었습니다. 

 최근 우리가 주목한 것은 sequence-to-sequence 모델에 기반을 둔 구글의 Tacotron 입니다. Tacotron은 지금까지의 음성합성 기술중 가장 자연스러운 음성을 표현하는 훌륭한 기술입니다. 그러나 이것은 특정 단어를 합성하지 않는 생략(skip)문제, 특정 단어가 반복되는 반복(repetition) 문제를 안고 있습니다. 이러한 현상은 상용화를 목표로 할 때 매우 불안정한 요소가 됩니다. 우리는 이 문제를 해결하기 위하여 노력하였으며 새로운 알고리즘과 학습레시피를 고안하여 의미 있는 성과를 얻어 냈습니다. 

 특히, 생략과 반복이 phone sequence 확률 부족과 attention 메커니즘의 불안정성 때문이라는 것에 집중하여 Advanced Encoder와 Weighted Location Attention 알고리즘을 고안하였으며 약 20여 년간 축척된 음성합성 기술의 노하우와 접목하여 xVoice를 탄생시켰습니다.
xVoice model diagram


Selvy deepTTS

셀바스AI의 Selvy deepTTS는 딥러닝 기술 기반의 음성합성 엔진 xVoice가 적용된 end-to-end 방식의 음성합성 솔루션입니다. Selvy deepTTS는 전통적인 방식의 음성합성기와 비교하여 보다 자연스러운 음성을 만들어내며, 특정인의 목소리와 발화스타일을 모방 할 수도 있습니다. 


Improving Naturalness  

 Selvy deepTTS는 사람이 발성할 때의 자연스러운 운율과 발음, 억양 등을 학습하여 자연스러운 음성을 생성합니다. 두 음절 사이의 연음, 문장 내에서의 쉼, 발성하는 동안의 작은 호흡 등을 사람처럼 자연스럽게 표현합니다. 


대화/낭독형

하나 / 유진

캐릭터

산타(5시간) / comming soon



Human-like Expressive Speech

보다 자연스럽고 감성적인 느낌씨를 표현합니다.

"음... 가능한지 확인해볼께요."


"저... 다시한번 말씀해주시겠어요?"





개인화 TTS

 xVoice는 단지 수분~수시간의 음성만으로도 그 사람의 목소리를 가진 음성합성기를 만들어 낼 수 있습니다. xVoice로 만들어진 음성합성기는 Selvy deepTTS에 탑재되어 실시간 음성합성 서비스에 활용 될 수도 있습니다.

  50대 남성 원본 / 합성음
  20대 여성 원본 / 합성음
  20대 남성 원본 / 합성음
  40대 여성 원본 / 합성음
음성데이터 - 50대 남성:20분 /  20대 남,녀:50분 /  40대 여성:50분

Overcome Skip/Repetition Problem  

 End-to-end 음성합성기술의 고질적인 문제였던 합성시 문장 일부분이 생략(skip)되거나 반복(repetition)되는 문제를 셀바스AI의 축적된 노하우(know-how)와 새로운 알고리즘을 고안하여 해결하였습니다. 

Real-Time Synthesis  

 실시간 음성 합성 기능을 제공합니다. 텍스트를 입력하고 실시간으로 음성을 생성할 수 있습니다. 텍스트를 입력하고 음성생성을 요청하여 청취하기까지의 과정이 텍스트의 길이에 상관없이 1초 이내에 이루어집니다. 

High Quality Voice

 Selvy deepTTS는 22.05KHz의 고품질 음성을 생성합니다. 우리는 지금보다 더 뛰어난 최고의 음향 품질을 선보이기 위하여 실시간 보코딩이 가능한 WaveNet을 개발하고 있습니다. WaveNet은 현존하는 보코더 중에서 최고의 음향 품질을 제공하지만 실시간으로 음성을 생성 할 수 없습니다. 우리는 최근 발표된 실시간 음성 생성을 위한 Parallel WaveNet이 이 문제를 해결해 줄 것이라 믿고 있으며, 가까운 시일 내에 Parallel WaveNet이 적용된 xVoice2를 통하여 최고의 음향품질 경험을 선보일 예정입니다.



2018년 9월 21일

03.<음성합성이 뭐야?> 컴퓨터가 음성을 만든다


음성합성 기술은 이미 우리 삶속에 깊숙히 들어와 있다. 내가 내릴 지하철 역을 안내해주기도하고 게임이나 인터넷방송에서 재미있는 말들로 즐거움을 주기도 한다. 예쁜 목소리로 미세먼지 수치를 알려주기도하며 가끔은 힘내라는 위로의 말을 건네준다.   

인공지능의 시대, 음성합성은 인공지능의 입으로서 사람과 인공지능의 소통의 창구역할을 하고 있으며, 4차 산업혁명의 핵심 퍼즐 조각이 되고 있다.

가까운 미래에, 우리는 음성합성기의 목소리 주인공과 대화하는 경험이 일상적인 일이 될것이 분명하다. 어쩌면 친구나 가족의 목소리보다 더 많이 듣는 목소리가 될지도 모른다.

이번 글에서는 우리의 일상이되고 친구가 되어줄 음성합성기는 어떻게 구현되는지 실현 기술들에 대하여 간단하게 설명하고자 한다.

음성합성 기술의 종류

음성합성 기술은 크게 4가지로 나누어 분류할 수 있다. 조음합성 (Articulatory synthesis) , 포먼트합성 (Formant synthesis) , 연결합성 (Concatenative synthesis) , 통계기반 파라메터 합성 (Statistical parametric speech synthesis) 이 그것인데 최근의 관심은 딥러닝 기반 기술로 방향 전환중이다.

  • 조음합성 (Articulatory synthesis) ,
  • 포먼트합성 (Formant synthesis) ,
  • 연결합성 (Concatenative synthesis) ,
  • 통계기반 파라메터 합성 (Statistical parametric speech synthesis)
  • 딥러닝 기반 음성합성
조음합성은 이전 글을 통해 설명하였듯이 인간의 조음기관을 모델링 한것이다. 기술 발표 당시에는 획기적이었을지 몰라도 지금의 기술 수준에서 바라보면, 음성을 흉내냈다 정도에 의의를 두면 될 것 같다. 포만트 합성은 조음 기관을 흉내내려는것에서 벗어나 음성신호를 직접 다루려는 시도라는 점에서 의미가 있다. 조음합성과 포만트 합성 기술에 대해서는 그러한 기술이 있었다 정도만 알아도 될 것 같다.  이번 글에서는 가장 널리 활용되고 있는 연결합성과 통계기반 파라메터 합성에 대하여 간단히 살펴보도록 하겠다.

연결합성

연결합성은 USS(Unit Selection Synthesis)라고 부르기도 하는데 이름을 주의깊게 살펴보면 어떤 기술인지 가늠 할 수있다. 사실 이름에서 이미 연결합성의 주요 기술들이 드러나고있다.
  이름속의 Unit 이라는것은 음성 녹음 데이터를 어떤 기준에 의해서 잘게 쪼갠 데이터, 즉 음편을 말한다. Unit selsection 이라는것은 그렇게 잘게 쪼갠 음편(unit)들중 가장 적합한 음편을 선택(selection)한다는 의미다. 만들고자 하는 음성을 가장 잘 표현할 수 있는 음편을 어떤 알고리즘에의해 선택하게 되고 이렇게 선택된 음편들을 서로 이어붙이면(concatenation) 음성이 되는것이다. 이와같이 음편을 서로 이어붙인다는 의미에서 연결합성이라고 부른다.

연결합성은 실제 음성을 잘게 쪼갠 음편들을 이어붙이므로, 현존하는 음성합성 기술중 가장 음질이 좋다. 왜냐하면 원음으로 만들어진 음편을 이어 붙이기 때문이다. 다만, 이어붙이는 과정에서 운율의 부조화가 나타날 수 있다는 단점이 있다.
물론, 최근 구글에서 발표한 tacotron2 는 WaveNet vocoder를 적용하면서 연결합성 기술을 넘어서는 뛰어난 음질과 자연성을 보여주고 있다.

실제 음성을 잘게 쪼개놓은 '음편'을 이어 붙이는 기술

음편 DB로부터 적합한 음편을 찾아 이어 붙이는 기술

통계기반 파라메터 합성

통계기반 파라메터합성기술은 음성 신호처리 기술에 기반한 것이다. 음성은 조음기관을 거치는 과정에서 어떤 특성을 가지게 되는데 이 특성을 신호처리 기술을 활용하여 음성 데이터로 부터 추출하고, 그것을 모델링 한 것이다. 음성데이터로 부터 추출된 이러한 음성 특징들을 파라메터라고 부른다.

통계기반 파라메터 합성은 음성 특징 파라메터들을 추출하여 통계기반으로 모델링하는 훈련과정과, 텍스트가 입력되면 통계 모델로부터 해당하는 파라메터를 생성하여 신호처리를 통하여 음성으로 만들어내는 합성과정으로 구성된다.


아래 그림은 통계기반 파라메터 합성기의 모델링 과정과 합성 과정을 나타낸 그림이다.


HMM based statistical parameter speech synthesis[1]


위의 그림을 보면서 통계기반 파라메터의 모델링 과정과 합성 과정을 차근차근 설명해보겠다.
위의 그림에서 Training part를 먼저 살펴보자. 음성으로 부터 'Excitation Parameter' 와 'Spectral Parameter'를 추출한다. 이것은 각각 음성에대한 기본 주파수 성분 f0와 주파수 대역별 power spectrum을 mel scale로 추출하여 특징화한 파라메터이다. 이렇게 추출한 파라메터는 언제든지 음성으로 복원할 수 있는 정보를 담고 있으므로 음성 데이터 그 자체라고 할 수 있다. 통계기반 파라메터 합성기는 이러한 파라메터들을 통계적으로 모델링하고 다시 가져와서 음성으로 만들어 내는 과정이다.
그렇다면 음성데이터 자체를 모델링하지않고 이와같이 파라메터를 추출하여 모델링 하는 이유가 무엇인지 의문이 생길 것이다. 음성데이터는 시간축에 따라 음성의 크기만 가지고있다. 해당 음성의 운율정보나 피치등의 중요한 특징정보를 알아낼수 없다. 즉, 음성의 특징정보가 너무 부족하다.

음성의 중요한 특징정보를 담고있는 파라메터는 통계기반 파라메터 합성기에서 매우 중요한 핵심요소이다. 통계기반 파라메터합성기를 잘 이해 하기위해서는 파라메터에대하여 조금 더 자세히 알 필요가 있다. 그럼 지금부터 파라메터에대하여 조금만 더 깊이있게 살펴보더록 하겠다.
파라메터라고 하는것은 사람의 음성을 신호 관점에서 볼때, 음성이 가지는 특성들을 말하는 것이다.

다음 질문에 대답해보자.

* 친구들의 목소리, 유명인의 목소리를 들으면 누구의 목소리인지 단번에 알아 맞출 수 있습니까? 
* 여성의 목소리와 남성의 목소리를 구분할 수 있습니까?

사람들은 저마다 자기만의 고유한 조음기관을 가지고 있다. 모든 사람들의 외모가 서로 다르듯 사람들이 가지고 있는 조음기관도 서로 다르다. 그러므로 조음기관을 통과해서 나오는 음성의 특징은 서로 다를것이다. 이전 글에서 설명 했듯이 조음기관인 성대와 성도를 거치며 음성이 만들어지게 되는데 형태와 반응이 사람마다 서로 다르기때문에 같은 말을 해도 다른 특성을 가진 목소리가 만들어지는 것이다.
우리가 친구들의 목소리, 유명인의 목소리를 서로 구분할 수 있는 것은 바로 이것 때문이다.


그렇다면 구체적으로 음성 파라메터에는 어떤 것이 있는지 살펴보자.

음성 톤의 높낮이를 나타내는 피치(pitch)
먼저 여성과 남성, 아이와 어른의 목소리를 구분할 수 있는 특징점은 '톤' 이다. 여성과 아이는 톤이 높고, 남성은 톤이 낮다. 이것을 'Pitch(피치)' 라고 한다. 피치를 결정하는 것은 앞에서 설명한 포먼트 정보이다. 피치가 높다는 것은 제 1 포먼트(f0) 가 높은 쪽에 위치하고 피치가 낮다는 것은 낮은 쪽에 위치한다.  스펙트로그램의 가장 아래쪽에 나타나는 진한 갈비뼈 모양이 위쪽에 있으면 톤이 높고, 낮은쪽에 있으면 톤이 낮다. 그러므로 여성과 아이들은 제 1 포먼트(f0)의 위치가 높은쪽에 나타날 것이라는 것을 눈치 챌 수 있을 것이다. 이제 우리는 음성을 듣지 않고, 스펙트로그램만 보고도 여성의 음성인지 남성의 음성인지 정도는 판단할 수 있는 능력을 갖추었다. 일반적으로 성인 남성은 85 ~155 Hz, 성인 여성은 165 ~ 255 Hz 의 f0를 가진다.
이렇게 목소리 톤이 높고 낮음을 결정하는 특성을 'Pitch(피치)'라고 한다.

음성의 길이(duration)
말하는 속도는 사람마다 제각각이다. 느릿느릿 말하는 사람, 속사포처럼 말하는 사람, 말하는 습관에 따라 특정 단어를 느리게 또는 빠르게, 세게 또는 약하게 발성하기도 한다. 따라서 음성의 특성을 결정하는데 음의 길이는 매우 중요한 요소중 하나이다. 만약 어떤 사람이 "오늘 날씨가 좋네요" 라는 말을 한다고 가정해보자.
약하게 천천히 발성해보라. 슬픈 느낌이 나지 않는가?  빠르고 힘있게 발성해보라. 기쁜 느낌이 날 것이다. 이와 같이 음의 길이는 음성의 감성을 결정하는데 중요한 요소중 하나이다.

음색, 음의 세기 등 기타 요소들
음성의 특성을 결정하는데 있어서 가장 중요한 요소는 피치와 길이이다. 그외 음의 크기(amplitude)나 음의 세기(accent) 등도 중요한 요소중 하나인데, 이러한 요소들은 MFCC(mel-frequency cepstral coefficient)라는 특징값으로 신호처리 기술을 이용하여 추출할 수 있다. MFCC는 음성인식에서도 중요하게 사용하는 음성의 스펙트로그램 특징 정보를 담고 있다. 깊은 이야기는 다음에 하기로하고 여기까지만 설명 하겠다.

이와 같은 음성의 특징 정보들을 파라메터라 부른다. 통계기반 파라메터 합성기는 이러한 특징 파라메터들을 통계기반으로 모델링 하는 것이다. 이해를 쉽게하기 위하여 'ㄱ'이라는 음소에 대한 모델링을 살펴보자. '가' 라는 음성의 'ㄱ', '공'이라는 음성의 'ㄱ', '구' 라는 음성의 'ㄱ' 과 같이 음성데이터 내에 존재하는 모든 'ㄱ' 들에 해당하는 음성으로부터 파라메터들을 추출하여 비슷한 특성을 가진 'ㄱ'들을 모은다. 이 과정을 'clustering'이라 한다. clustering 과정을 끝내면 비슷한 특성을 가진 'ㄱ', 들이 서로 모여있게 되는데 이렇게 서로 모여있는 'ㄱ' 들의 통계값 (mean 과 variance)을 구한다. 모델링은 이렇게 여러 'ㄱ'들의 집합, 'ㄴ'들의 집합들에 대한 통계값을 구하는 과정이다. 합성하는 과정은 반대의 과정을 거친다. 입력된 텍스트로 부터 적정한 통계모델을 찾아내고, 통계값을 통하여 다시 원래의 파라메터를 복원한다. 복원된 파라메터를 보코더에 통과시키면 음성이 만들어지는 것이다. 알고보면 매우 간단한 원리이다.

참고 : 포먼트(Formant)
사람의 음성을 주파수 성분으로 분석하면 (공학적 관점에서 보면 time domain을 frequency domain으로 변환하여 살펴보는것, 즉 Fourier transform) 각 주파수 대역별 에너지를 알 수 있다. 그런데 각 주파수 대역별 에너지의 분포를 그래프로 그려 보면, 특정 주파수 대역에서 에너지가 높게 나타나는 모양을 보게 된다.

아래 그림은 어떤 음성의 주파수 성분을 분석한 것이다. 음성뿐만 아니라 세상의 모든 신호에는 주파수 성분이 존재한다. 아래 그림과 같이 각 주파수 대역별 에너지의 분포를 나타낸것을 스펙트로그램(Spectrogram)이라 부른다.

스펙트로그램에서 세로축은 주파수를 가로축은 시간축이다. 그림의 아랫부분이 저주파 대역이고 위로 올라갈수록 고주파 대역이다. 고주파 대역으로 갈수록 색이 흐려지고 어두워진다. 저주파 대역은 밝고 진하다. 이것은 에너지를 색으로 표현한것이다.

아래 갈비뼈 모양의 형태로 짙고 밝은 에너지가 나타난 모습이 보일것이다.  이것이 음성 주인공의 목소리 특징이다. 즉, 포먼트는 공명 주파수 스펙트럼에서의 피크(Peak)를 의미한다. 그중 가장 아래 진하게 나타난 주파수대역을 제 1포만트라 부른다. 이것은 그 사람의 기본주파수(Fundamental frequency)라고도 부르며 f0 라고도 부른다. f0는 목소리 톤이 높고 낮음을 결정하는 기본 주파수이다.
주파수 대역별 에너지 분포


- Ref. -
[1] HTS Slides released by HTS Working Group - http://hts.sp.nitech.ac.jp/



글 - 셀바스AI - 박태훈 (wayne.t.park@selvas.com / https://brunch.co.kr/@oldamigo9)

2018년 9월 20일

02.<음성합성이 뭐야?> 음성은 어떻게 만들어지나?


음성은 어떻게 만들어지나

음성합성 기술을 이해하기 위해서는 인간이 음성을 만들어내는 원리와 언어학에 대한 아주 약간의 이해가 필요하다.
Speech chain  [1]


   먼저 인간이 의사소통을 하기위하여 음성을 만들어 내는 과정을 살펴보자. 일상적인 대화에서 화자(Speaker)는 말을하고 청자(Listener)는 듣는다. 음성연쇄(Speech chain)은 이처럼 화자가 청자에게 말을 하는 과정에서 인간의 몸 안에서 일어나는 메커니즘을 정의한 것이다. 위의 그림은 대표적인 음성연쇄(Speech chain)을 표현한 그림이다. 그림을 살펴보면 화자(Speaker)는 청자에게 의사를 전달하기 위한 메세지를 뇌에서 만들어낸다. 이때 화자는 자신이 습득한 언어,역사,기술 등의 모든 지식을 총동원하게 된다. 이 과정을 언어적 단계라고 한다.
  뇌에서 만들어진 메세지는 중추신경계를 통해 말소리로 만들어져야 한다. 뇌는 메세지를 말소리로 만들기 위해 발성 근육을 움직이기 시작한다. 사실 발성 근육을 움직이는 것은 인간의 일반적인 운동작용과 비교하면 매우 복잡하고 큰 노력이 필요한 일이다. 왜냐하면 뇌가 간직한 언어정보를 비롯하여, 상대에대한 정보, 상황에 대한 판단 등 매우 많은 복잡한 정보간의 상호작용을 통해 말소리의 크기, 톤, 말하는 스타일 등을 종합적으로 판단하여 결정해야 하기 때문이다. 발성근육을 움직이기위한 이러한 과정을 생리적 단계라 한다.
  생리적 단계에서는 우리 몸의 신체 기관들을 움직여 음성을 만들어 내는데 음성을 만드는 신체기관을 조음 기관이라 부른다. 조음기관이 음성을 만들어내는 원리는 현대 음성 합성 기술의 중요한 지식 기반이 되었다.
  이렇게 만들어진 음성은 공기를 매개체로 청자에게 전달되는데 공기를 통해 전달되는 음성을 컴퓨터를 통해 분석하기위해 전기신호로 바꾼것을 음향신호라 한다.

뒤에서 설명하겠지만 음성합성기의 역사를 살펴보면 초기에는 조음기관의 말소리 생성 원리를 이용하여 조음기관의 하드웨어적 형태를 그대로 모델링하려고 하였다. 그러나 점차 컴퓨터 기술이 발전하면서 신호처리 기술을 이용하여 음향신호를 직접 만들어내는 방향으로 기술이 발전 하였다. 이렇게 만들어진 말소리는 공기를 진동시켜 청자의 귀로 전달된다.

사람이 말소리를 만들어내는 speech chain을 간단하게 살펴 보았다. 다소 추상적이지만 이해하기 어려운 내용은 없다.
 음성합성 기술을 이해하기 위해서는 위에서 설명한 Speech chain중에서 음성을 생산하는 조음기관이 음성을 만들어내는 원리를 이해해야한다.

조음기관의 음성 생성원리


 이제 조음기관이 음성을 어떻게 만들어내는지 살펴보려고한다. 조음기관의 원리는 실습을 해보면 쉽게 이해 할 수 았다. 우선 모음 “아에이오우”를 순차적으로 발성해보면서 내 몸의 조음기관이 어디인지, 어떻게 움직이고 있는지 느껴보시라. 발성을 위해 움직이는 내 몸안의 신체기관들을 느껴보면 될것이다.
  먼저 “아”를 길게 발성한다. 그 상태에서 “에” 로 발성을 바꾸어 본다. 어떤 변화가 일어났는가? 입안의 모양과 혀의 위치가 변한다. “이” ->"오"->"우" 를 순차적으로 발성하며 구강의 모양과 혀의 위치, 입술의 움직임들을 살펴보자.
"아" 라는 소리를 만들때는 입을 크게 벌려야한다. 뇌에서 입을 크게 벌리라고 명령을 내리는 것이다. "에"라는 소리를 만들때에는 혀가 앞으로 이동한다. 혀의 움직임에 따라 소리가 달라지는 것이다.
폐에서 시작된 공기의 흐름이 우리가 알고 있는 발음으로 변한 것이다.
그럼 이제 한옥타브 높은 소리를 내보자. 입의 모양은 그대로인데 소리가 날카로운 소리로 변한다. 이것은 목구멍 안쪽의 성대가 많이 진동한 것이다. 성대가 많이 진동하면 소리의 주파수가 높아져 하이톤의 음성이 만들어지는 것이다. 이것을 피치라고 도 하는데 일반적으로 성인 남성은 85 ~155 Hz, 성인 여성은 165 ~ 255 Hz 의 주파수 특성을 가지고 있다.

실습을 했으니 이제 아래의 그림을 통해 조음기관을 단계별로 살펴보자. 폐에서 시작되는 공기의 흐름은 목구멍의 성대를 통과하며 음원(speech source 또는 sound source)이 된다. 성도(vocal cord)는 목구멍의 성대로부터 입술까지의 구강과 콧구멍까지의 비강을 의미한다. 성대를 통과한 음성은 성도의 모양에 따라, 입술의 위치와 모양에 따라 다양한 소리로 만들어진다.
때로는 마찰을 일으키기도 하는데 이것을 마찰음이라 한다. 대표적으로는 "ㅅ" 이 들어간 소리가 있다. "스"와 같은 소리를 내보면 바로 이해가 될것이다.
Speech production mechanism [3]

음소와 음성

음성합성 기술에서 합성음을 만들기 위한 기준이 되는 단위는 음소이다. 음소는 언어학적 관점에서 의미를 가지는 소리의 최소 단위이다. 쉽게 'ㄱ','ㄴ','ㄷ','ㄹ' 과 같은 자음과 모음을 말한다. 그런데 사실 은 같은 음소라 하더라도 소리가 다르다. 예를 들면, "학교" 라는 단어에서 "학"의 종성 'ㄱ'과 "교"의 초성 'ㄱ'은 소리가 다르다. 즉 음성학적 관점에서는 같은 음소지만 다른 소리를 가지게 된다.
  음성합성은 문자를 소리로 만들어 내는 기술이므로, 'ㄱ' 이라는 음소를 여러가지의 다른 'ㄱ'소리로 만들어 낼 수 있어야 한다. 따라서 음성합성에서는 음성학적 측면에서의 음소를 기준 단위로 사용하게 되는데 앞뒤에 따라오는 음소에 따라 소리가 달라지므로 앞뒤의 음소 조합을 고려하게 된다.

  이제 자음과 모음으로 구성된 음소를 음성학적 측면에서 살펴보자.

 앞에서 설명했지만 폐에서 나오는 공기의 흐름은 제일먼저 성대라는 곳을 통과한다. 성대는 작은 울림판이 있어 모음을 발성할때 진동하게 된다."아" 라는 소리를 한번 내보자. 목구멍의 떨림을 느낄 수 있을 것이다. 자음의 경우 성대가 진동하지 않는다. 대부분의 자음은 성대를 진동시키지 않는데 일부 자음은 성대를 진동시키기도 한다. 자음은 노이즈에 의해 만들어지는 소리이다. 소리를 방해하기위한 노이즈를 발생시켜 만들어지는 소리인 것이다. 성대가 진동하는 음성과 그렇지 않은 음성에 대하여 설명하였는데 이것은 유성음과 무성음을 설명하기 위한 것이다. 음성은 성대의 진동여부에 따라 무성음과 유성음으로 나눈다. 모든 모음은 발성할때 성대가 진동하므로 유성음이다. 대부분의 자음은 성대가 진동하지 않으므로 무성음에 해당하나 일부 자음 [ㄴ,ㄹ,ㅁ,ㅇ] 의 경우 성대가 진동한다. 따라서 유성자음이다.

유성자음중 [ㄴ,ㅁ,ㅇ] 을 비음이라 하고, [ㄹ]을 유음이라 한다. 그밖에 무성자음이 유성음화 되는 경우도 있다. "국물" 과 같은 단어인데, "궁물"로 발음된다. 즉, 종성 'ㄱ' 이 'ㅇ'으로 소리나서 유성음화 되는 것이다.

이러한 원리를 알면 소리를 만들어 낼 수 있다. 음성합성기를 만들려는 시도는 이와 같은 원리를 이용하는것 부터 출발하였다.

음성합성의 역사

최초의 음성합성기는 1791년 볼프강(Wolfgang von Kempelen)이 만들었다. seiner sprechenden Maschine 이라 하는데, 풀무같이 생긴 기계의 손잡이를 조작하여 비음, 구강음등을 낼 수 있도록 하였다. 단어나 문장을 만들어 내었다고 한다.




Wolfgang von Kempelen - seiner sprechenden Maschine



1846년에는 Joseph Faber 가 EUPHONIA 를 만들었는데 이 역시 조음기관을 모델링한 형태를 띄고 있다. 피아노같이 생긴 기계를 페달과 키보드와 같은 장치를 조작함으로서 여러 소리를 만들어낸다.


1939년에는 AT&T Bel Lab. - VODER 가 있었고(1년 정도 숙련해야 다룰 수 있었다고 한다), 1951년에는 The Pattern Playback이라는 것이 있었다.
이와같이 대부분의 오래전 음성합성의 시도는 인간의 조음기관을 흉내내 보려는 시도로부터 시작되었다.
 그러나 1960년대 이후에는 컴퓨터 기술이 발달하면서 컴퓨터를 이용한 음성합성 기술의 개발이 본격적으로 시작되었다. 조음기관 흉내를 위한 하드웨어를 개발하려는 시도에서 벗어나 조음기관을 통해 나오는 음성의 음향적 특성을 컴퓨터로 모델링하거나 음성을 직접 편집하여 이어 붙이는 등의 기술을 통해 음성합성 기술은 비약적으로 발전하게 된다.

- Ref. -
[1]Speech chain: L.R. Rabiner and R.W. Schafer, Digital Processing of Speech Signals, Prentice-Hall signal processing series, Upper Saddle River NJ, 1978.
[2] https://en.wikipedia.org/wiki/Wolfgang_von_Kempelen
[3] HTS Slides released by HTS Working Group - http://hts.sp.nitech.ac.jp/


글 - 셀바스AI 박태훈 (wayne.t.park@selvas.com  /https://brunch.co.kr/@oldamigo9)


2018년 9월 19일

01. <음성합성이 뭐야?> 음성합성, 무엇에 쓰는 물건인고?


영화 <설국열차>에서 기차의 보안설계자 남궁민수(송강호)는 입에 동그란 기계를 대고 말을 한다. 동그란 기계는 영어를 사용하는 상대에게 한국어로 의사소통을 하기위해 꺼내든 자동번역 기계이다. 남궁민수가 동그란 자동 번역기에 대고 한국어로 말을 하면 기계는 영어로 번역된 음성을 내 뱉는다.

동작원리를 추정해보면 남궁민수의 한국어는 음성인식을 거쳐 한국어 텍스트로 변환되고 그것은 영어 텍스트로 자동번역될것이다. 영어로 번역된 문장은 유창한 영어 음성으로 변환되어 동그란 기계의 스피커를 통해 흘러나오는것이다. 동그란 기계를 통해 흘러나오는 영어 음성은 음성합성기가 만든 소리임이 분명하다. 영화에서는 기계가 들려주는 어눌한 발음? 억양? 때문에 웃음을 유발하기도 하는데, 아마도 봉준호 감독에게는 아주 오래전의 낮은 기술 수준의 음성합성기를 접했던 기억이 남아있었던것 같다.

근래 딥러닝 기술로 만들어진 음성합성기는 사람과 기계를 구분하지 못할 정도로 높은 퀄리티를 보여주고 있다.

음성합성기는

음성합성기는 사람대신 컴퓨터가 말을 해야하는 곳에 사용된다.
이렇게 정의 할 수 있다.
문자정보를 음성정보로 변환하는 기술





음성합성기는 텍스트를 사람의 음성으로 변환하는 기술이다. 즉, 문자를 음성으로 변환해준다. 컴퓨터에 텍스트를 입력하면 사람의 음성으로 그것을 읽어주는 기술이다.

주변 사람들에게 물어보면 열에 아홉은 음성합성이라는 용어에 고개를 갸우뚱 한다. 음성합성이란 용어가 낯설지 않은 사람들 조차도 기술이 어디에 사용되고 있는지에 대해서는 매우 궁금해 한다.

어디에 쓰는 물건인고?

음성합성기는 <설국열차>의 자동번역기 처럼 특별한 장비만을 위한 희귀한 기술이 아니다. 알고보면 우리의 곁에서 늘 우리와 함께 하고 있다.

몇 가지만 살펴보자.

지하철과 버스정류장에서 안내방송이 흘러 나온다. "다음 정차역은 .... 입니다. 내리실분은... 어쩌고 저쩌고", "이번에 도착할 버스는 00번, 00번...". 안내방송이 성우의 멋진 목소리로 흘러나온다.

대부분 음성합성기가 만들어내는 소리이다.
아마도 이 글을 읽기 전까지 많은 사람들은 성우가 녹음한 안내멘트 정도로 알고 있었을 것이다.

아파트 안내방송도 마찬가지이다. 때로는 관리소장님의 어색한 멘트에 웃음보가 터지기도 하지만 대부분의 많은 단지에서는 음성합성기를 이용하여 안내방송을 내보내고있다.

e-book 에서도 사용된다. 국내 대부분의 e-book에는 필자의 회사에서 개발한 음성합성기가 탑재되어 책을 읽어주고 있다. 카시오나 샤프의 전자사전이나 디오딕과 같은 유명 사전 앱에서도 음성합성기가 사용된다. 사전에 탑재된 여러 언어로 단어나 예제 문장들을 읽어주기 위해서다.

쓰는 이유가 궁금해

 성우나 아나운서가 직접 방송하거나 필요한 멘트를 녹음해서 사용하면 더욱 더 자연스럽고 감성적인 음성을 들려 줄 수 있을텐데, 왜 음성합성기를 사용하는 것일까?
 몇 가지 이유가 있는데 비용과 활용도 측면에서 합성기가 유리하기 때문이다. 아무래도 안내 방송이 필요할때마다 그때를 위해 고급 인력인 성우나 아나운서를 채용하는것은 부담이 될것이다. 게다가 성우나 아나운서가 감기에 걸렸거나 휴가라도 가면 곤란한 상황에 직면하게 된다. 그런데 컴퓨터는 1년 365일 아프지도 않고 휴가도 가지 않는다.  
 더구나 여러 나라의 언어로 방송해야하는 경우라면 더욱 그렇다. 각 나라의 언어를 잘 구사하고 목소리까지 좋은 아나운서를 섭외 해야 할 것이다.
만약 읽어 줘야할 텍스트가 정해진 고정멘트를 대상으로 한다면 음성합성기가 필요없다. 스튜디오에 의뢰해 녹음하는 것이 여러면에서 유리하다.  

 최근 음성합성 기술을 가장 필요로하고 있는 곳은 AI플랫폼 분야이다. SKT NUGU, KT에서 출시한 기가지니, 카카오미니, 네이버 클로바와 같이 인공지능 스피커에서 나오는 예쁜 목소리는 음성합성기가 만들어내는 목소리이다.
 아무래도 AI플랫폼의 입을 담당하고 있는 기술인 만큼 사용자와 가장 가까운 곳, 청각신경까지 다가가 AI플랫폼의 경험을 선사한다.
 개발 업체들은 그 중요성을 제품 출시전까지는 잘 모르는 경우가 많다. 그러나 제품을 출시하고 나면 생각이 달라지는 경우가 대부분이다. AI플랫폼으로 부터 나오는 목소리는 감성적인 경험을 전달하기 때문에 제품에 대한 이미지를 결정하는데 많은 영향을 미치고 있기 때문이다.
 인공지능 스피커를 사용하는 유저들은 목소리가 주는 감성적인 측면을 더 중요하게 생각한다. 그 동안의 음성합성기는 안내방송과 같이 정보 전달 측면에서 명료성이나 발음의 정확도를 중요시 했다면, 최근에는 자연스럽고 감성적인 측면을 더 중요하게 생각하기 시작했다.
 이와 같은 여러 이유로 AI플랫폼을 개발하는 기업들은 저마다 자기만의 보이스 아이덴티티를 가지고 싶어한다. 기업들은 자기들만의 고유 캐릭터를 설계하고 그에 맞는 목소리를 개발하여 탑재하고 있다.






인공지능의 시대에서 음성인식과 음성합성 기술은 미래의 인공지능 인터페이스로서 매우 중요한 역할을 하게 될 것이다. 그리고 앞으로는 더 자연스우면서 감성적인 표현까지도 가능한 음성합성 기술에 대한 요구가 더욱 거세질것으로 보인다.

필자가 글을 쓰게된 이유중 하나는, 미래의 중요한 인터페이스로서의 음성합성 기술에 대하여 잘 모르는 분들이 많다. 음성합성 분야에 삶의 일부를 소모하고 있는 필자의 입장에서 음성합성기술에 대한 이해가 조금이라도 알려지길 바라는 마음에서다. 앞으로 연재를 통해 음성합성 기술의 역사와 배경, 음성합성 기술과 개념, 최근의 딥러닝 기반 음성합성 기술까지 가능하면 깊이 있게 설명해보려고한다.




글 - 셀바스AI - 박태훈 (wayne.t.park@selvas.com / https://brunch.co.kr/@oldamigo9)


Pages