#1.
일단,, Grapheme과 byte representation으로 합성기의 text 단위를 어느것을 쓰는게 나은지 비교 실험한 것이 나오는데, phoneme까지 비교를 했어야 유의미하고 흥미로운 비교라고 생각한다.
phoneme을 고려하면 음질 측면에서는 byte이 phoneme보다 이득이라고 할 수 없겠지만,
byte representation만이 갖는 절대적인 이득은 기존 TTS에 언어 추가가 용이하다는 점이다.
=> 왜냐면 byte representation을 예측하는 문제는 사전에 정의된 음소 집합에서 예측하는 문제와 달리 확장성이 무한하기 때문이다. 이 세상 어떤 언어도 256가지의 byte의 조합으로 표현 가능하니까. (이 점은 IPA도 해당되지만 IPA는 비싸다)
=> 그런데 language code one-hot vector를 사용해 TTS의 음질에 크게 이득을 봤다고 했는데, language vector를 사용하려면 적어도 사전에 내가 몇 개의 언어까지 이 TTS를 확장할 것인지의 계획은 처음부터 갖고 있어야 할 것이다. 처음에는 4개 언어의 TTS를 만들려고 했는데 나중에 5번째 언어를 추가하고 싶다면 더 이상은 확장할 수 없게 되는 것이다.
그리고 저자들이 한글이 완성형밖에 없다고 생각하고 있다는 느낌을 받았다.
한글 완성형이 아니라 조합형을 쓰면 grapheme 수가 훨씬 줄어드는데 굳이 완성형으로 grapheme을 쓸 이유가 있을까?
애초에 grapheme 수가 적은 언어로 영어와 스페인어를 설정하고, grapheme 수가 커서 byte representation의 효과를 볼 언어로 일어와 한국어를 가정해버렸기 때문에 한글 완성형을 고집했을 것 같다.
#2.
솔직히, 원래는 막연하게 multi-language TTS에서는 text embedding space를 여러 언어가 공유하면서 IPA를 굳이 안써도 text embedding space가 더 잘 학습될 거라고 생각했는데, 이 논문을 보면서 근거 없는 추측이었을 수도 있다고 생각했다.
=> 기존에 하도 IPA 기반 연구만 봐오다 보니 착각하고 있었던 것이다.
=> 이게 어느 정도 잘못된 생각이었냐면, 좀 후려쳐서 말하면 사실은 multi-lingual TTS의 성능 상한선이 mono-lingual이라고 말할 수도 있다.
=> 기업에서 (IPA를 안 쓴다는 가정 하에) multi-lingual TTS 연구를 할 이유는 지원 언어 확장의 비용을 줄이기 위해서가 주된 이유인 듯 하다.
#3. Forgetting 방지
Netwrok adaptation을 하면서 기존 데이터로 학습한 것을 잊지 않게 하기 위해서 heuristic한 비율로 기존 데이터와 신규 데이터를 섞어 훈련 시키는 트릭을 알게 돼서 유익했다. 전에 Multi-speaker TTS를 DB1으로 학습한 뒤 DB2로 adaptation하려다가 forgetting 현상을 경험한 적이 있다.
'TTS' 카테고리의 다른 글
E2E TTS에서 postnet이 필요한 이유 (0) | 2020.03.14 |
---|---|
Japanese/Korean/Vietnamese Corpus (0) | 2020.02.08 |
Global style token (1) | 2020.01.17 |
Deep Voice 3 (0) | 2020.01.17 |
Transformer TTS (0) | 2020.01.17 |