paper: arxiv.org
올해 초 네이버 클라우드에서는 정부 프로젝트 “독자 파운데이션 모델”의 일환으로 2가지 모델을 공개했다.
•
HyperCLOVA X SEED Think 32B
•
HyperCLOVA X SEED Omni 8B
그 중 오디오 입출력을 지원하는 Omni 모델을 공개 했고, 한국에서 LLM에 오디오를 진지하게 고려하고 있는 조직이 있다는 것에 고마웠다. (미국에서는 Multimodal / Audio Voice에 집중하고 있는데, 아직 한국은 LLM 따라가기 벅차보이는 상황)
(번외로 Vision encoder를 오픈소스로 이용하여 독자성이 부족해서 탈락했지만, 지금 한국 입장에서 집중할 부분은 일부 차용하더라도 미국과 중국의 frontier를 따라잡을 수 있느냐인 것 같다.)
HyperCLOVA X SEED Omni 8B 논문 훑어보기
HyperCLOVA X SEED Omni 8B 의 TTS 결과
다만, 논문을 읽고나서 들었던 생각은 “시간이 부족했나보다” 였다. 특히 오디오 측면에서는 그래보였다.
연구자들이라면, 더욱이 네이버 클라우드에서 일하고 계신 연구자들이라면 인지하고 있을만한 많은 부분이 논문에서 생략되어 있었다.
사실 “독파모” 프로젝트의 경우 기한을 빠듯하게 정해놓고 경쟁하는 중이었기 때문에 이해가 가는 부분이다.
LLM에 오디오를 지원하는 것은 아직 안정화 단계(특히 작년에는 더)가 아니었고, 그 와중에 Multimodal LLM의 다른 도메인 성능을 내면서 오디오를 안정화하는 것은 매우 어려웠을 것으로 보인다.
표의 실험 결과를 보자면, 일단 평가 문장이 언어 별로 10문장이라는 것에서 1차 당황..
speaker 언급은 없는 것으로 보아, 단일 화자 평가일 가능성이 크고 제로샷을 지원하지 않는 모델이 있는 것으로 보아, 통일되지 않았다.
omni 모델끼리 음성 인터페이스의 성능을 측정한다는 관점에서 본다면, zero-shot capability 등의 TTS가 얼마나 뛰어난지를 강조할 필요가 없으니, 화자 선정을 다르게 두고 하는 것에는 그럴 수 있다고 본다.
다만, 평가 문장 10개로 결과를 보고한다는 것은 연구자가 실험을 하는 것에 시간과 비용 측면에서 압박을 받고 있었다고 보여진다.
또한 하나의 MOS로 퉁쳐서 측정했다.
게다가 Multimodal 모델의 강점을 살린 TTS 실험이 별도로 없었다.
참고로 ElevenLabs v3 의 경우, 아직 alpha 모델인데 zero-shot speaker consistency / hallucination 측면은 다소 개선이 필요하지만, 한국어 자연스러움/비언어발화/음질 등에서는 상당히 훌륭하다.
이러저러해서 실험 세팅에서 다소 아쉬운 마음이 들었고, 직접 clova omni 모델을 돌려서 확인해보기로 했다.
실험 분석
일단… 기존에 실험하던 TTS 들에 비해 시스템이 다소 무겁고 사용 방법이 달라서 조금 당황했다.
docker를 사용할 수가 없는데, document에는 docker 안내만 있고 native 환경으로 구축해서 사용하는 방법 안내는 없어서 claude를 적극 활용하여 환경을 구축했다.
기존의 TTS는 입력된 문장을 그대로 발화한다면, Omni 모델은 다음과 같이 프롬프트를 이용해서 생성한다.
DEFAULT_PROMPT_TEMPLATE = (
"다음 문장을 {style} 스타일의 한국어 음성으로 읽어줘. "
"문장을 수정하거나 요약하거나 답변하지 말고, 따옴표 안 문장만 그대로 발화해: {text}"
)
Bash
복사
평가를 위해 사용한 세팅은 다음과 같다
•
zero-shot reference audio 50개
•
한국어 문장 500개
•
다른 seed로 2번씩 생성
•
whisper를 사용한 CER 측정
•
내가 직접 듣고 주관적으로 평가해보기
결과를 요약하자면 다음과 같다.
CER | |
Clova | 3.2 % |
자체모델 | 0.5 % |
•
zero-shot speaker similarity 는 매우 낮음
◦
대충 비슷한(finetuning voice?) 여성/남성 음성으로 발화한다.
◦
가끔 반응하긴 하는데, zero-shot capability가 있다고 보여지지는 않고, multi-speaker 수준으로 보인다.
•
sound quality 는 나쁘지 않으나, 깨끗하지는 않은 편
•
프롬프트를 이해하지 못하는 경우 가끔 발생
◦
입력 문장: "녹음 파일을 다시 저장해 줘."
◦
출력 발화: "다음 문장을 내추럴한 한국어 음성으로 읽어주세요."
◦
사용된 프롬프트 템플릿이 입력 발화로 처리되는 경우가 다수 발생
◦
이로 인해, CER 측정의 의미가 퇴색되었다.
•
content fidelity 는 괜찮은 편
◦
일단 프롬프트를 제대로 처리한 경우에 한해서는 꽤 충실하게 발화하는 편이었다.
◦
물론 간혹 스킵, 오발화는 있다.
◦
아마도 프롬프트 이슈로 seed-tts-eval 과 같은 정량 평가에서 sota와는 거리가 멀게 나와서 report하기 곤란했을 것 같다.
•
Text normalization
◦
입력 문장: "값이랑 닭이 발음이 뭉개져.”
◦
발음규칙을 벗어난 케이스들이 종종 있음.
◦
sample
•
흥미로운 point
◦
입력 발화: "오늘은 경계를 정하자, 밤늦게 전화는 받지 않을게.”
◦
출력 발화: "다음 문장을 자연스러운 한국어 음성으로 읽어 드릴게요. 오늘은 경계를 정하자 밤늦게 전화는 받지 않을게.”
◦
Generated sample
◦
프롬프트를 그대로 읽은 것도 아니고, 답을 하는 문장 발화가 새롭게 생겼다.
▪
이는 입력에 없는 발화를 음성 출력으로 새롭게 만들어 낸 것이다.
▪
오류이지만, 흥미로운 실험 결과.
▪
LLM 모델 없이 기존의 TTS는 어려운 task
▪
아마도 훈련 데이터에 답을 하는 오디오가 꽤 있었겠지만, 생성 확장의 여지에서 기존 TTS의 한계를 벗어나는 잠재력을 상상해 볼 수 있다.
•
(추가) 등록된 preset voice 생성
◦
문장셋은 모두 동일하게 한 채로 “fkms” speaker id를 사용해서 생성하였으나, CER 비슷한 수준
결론
아무래도 TTS 단일 task를 두고 봤을 때는, 아직 서비스 품질로는 다소 무리가 있어보인다.
다만, 이제 시작단계이기 때문에 일단 이 정도 세팅을 해놓은 상태에서, 실험에 집중만 하면 연구자들의 경험으로 빠르게 끌어올릴 것으로 기대되는 부분이 있다.
애초에 TTS를 위한 모델이 아니고, heterogeneous task 달성이 목표이고, 이에 있어서는 일정 수준 달성한듯 보인다.
Qwen Omni도 작년까지는 영 별로였던걸 생각하면 1년안에 빠르게 개선될 것으로 예상되는 부분.
다만, Omni이기는 하지만 8B은 다소 크고 단일 도메인이 목표가 아니어서, 1B 수준의 STT/TTS 고도화 모델이 병행 연구되면 시너지가 생기지 않을까 싶다.
특히 LLM 자체를 SoTA 수준으로 개발하는 것은 인프라 차이로 쉽지 않지만, audio modality에서는 충분히 가능할 것으로 여겨진다.
