eSpeakNG, 100개 이상의 언어와 방언을 지원하는 오픈소스 음성합성
개요
오픈 소스 음성 합성기인 eSpeak NG는 100개 이상의 언어와 방언을 지원합니다. 기존 eSpeak 엔진을 기반으로 하여 여러 향상된 기능을 제공하며, Linux, Windows, macOS, Android 등 다양한 운영체제에서 사용할 수 있는 컴팩트한 오픈소스 소프트웨어(OSS) 텍스트-투-스피치(TTS, text-to-speech) 합성기입니다.
eSpeak 소개
eSpeak 은 원래 Jonathan Duddington에 의해 개발된 컴팩트한 오픈소스 텍스트-투-스피치(TTS) 소프트웨어입니다. 이 소프트웨어는 다양한 언어를 지원하며, 특히 리소스가 제한된 환경에서의 사용을 목적으로 합니다. eSpeak은 포맷 합성 방법을 사용하여 생성된 음성이 다소 자연스럽지는 않지만, 속도와 메모리 사용 면에서 효율적입니다.
eSpeak NG 소개
eSpeak NG (Next Generation)은 Reece H. Dunn가 시작한 eSpeak의 포크(fork) 버전으로, 기존 eSpeak의 기능을 기반으로 하면서 코드베이스를 정리하고, 새로운 기능을 추가하며, 지원 언어를 확장하는 등의 개선 작업이 이루어진 오픈소스 소프트웨어 입니다.
eSpeak NG는 다른 TTS 엔진과 비교할 때 크기가 작고, 많은 언어를 지원하는 점이 특징입니다. 예를 들어, Google의 TTS는 더 자연스러운 음성을 제공하지만, eSpeak NG는 더 많은 언어와 방언을 지원하며, 설치 공간이 적게 필요합니다.
eSpeak 주요 특징
-
다양한 음성 지원: eSpeak NG는 다양한 음성을 제공하며, 각 음성의 특성을 사용자가 조정할 수 있습니다. 사용자는 음성의 속도, 피치 등을 변경하여 원하는 음성 출력을 얻을 수 있습니다.
-
WAV 파일 출력: 이 프로그램은 음성 출력을 WAV 파일 형식으로 생성할 수 있어, 음성 데이터를 쉽게 저장하고 다른 응용 프로그램에서 사용할 수 있습니다.
-
SSML 및 HTML 지원: eSpeak NG는 SSML(Speech Synthesis Markup Language)을 부분적으로 지원하여, 음성 합성을 더 세밀하게 제어할 수 있습니다. 또한, HTML 문서에서 직접 텍스트를 읽어 음성으로 변환하는 기능도 지원합니다.
-
컴팩트한 크기: 프로그램과 데이터는 몇 메가바이트에 불과하여, 리소스가 제한된 환경에서도 효율적으로 사용할 수 있습니다.
-
MBROLA 다이폰 음성 프론트엔드: eSpeak NG는 MBROLA 다이폰 음성을 프론트엔드로 사용할 수 있으며, 텍스트를 음소 코드로 변환하여 음성 합성 엔진 앞단에서 사용할 수 있습니다. 이는 eSpeak NG가 피치와 길이 정보를 포함한 음소 코드로 텍스트를 변환한다는 것을 의미합니다.
-
다른 언어에 대한 확장 가능성: eSpeak NG는 현재까지 개발 중인 127개 언어와 방언를 지원하며, 해당 언어의 원어민들의 도움을 받아 언어 지원을 확장할 수 있는 잠재력을 가지고 있습니다.
-
C 언어로 작성: eSpeak NG는 C 언어로 작성되어 있어, 성능과 호환성 면에서 이점을 가집니다. 이는 개발자들이 소스 코드를 쉽게 이해하고 필요에 맞게 수정할 수 있도록 합니다.
사용법
eSpeak NG는 커맨드 라인 프로그램으로서 텍스트 파일이나 표준 입력(stdin)에서 읽은 텍스트를 음성으로 변환할 수 있습니다. 또한, 다른 프로그램에서 사용할 수 있도록 공유 라이브러리 형태로도 제공됩니다. 예를 들어, 윈도우에서는 SAPI5 버전으로 제공되어 스크린 리더와 같은 프로그램에서 사용할 수 있습니다.
주요 지원 언어
eSpeak NG는 총 127개의 언어와 방언을 지원하고 있습니다. 다음은 그 중 몇 가지 주요 언어의 예입니다:
-
한국어(Korean): 한국어는 eSpeak NG에서 지원하는 언어 중 하나로, 한국 개발자들에게 특히 유용할 수 있습니다.
-
영어(English): 다양한 방언을 포함하여 미국, 영국, 캐리비안, 스코틀랜드 등의 영어가 지원됩니다.
-
중국어(Chinese): 만다린, 광동어, 하카어 등 여러 방언이 포함됩니다.
-
일본어(Japanese): 히라가나와 가타카나를 포함하여 지원됩니다.
-
스페인어(Spanish): 스페인 및 라틴 아메리카 방언이 지원됩니다.
-
힌디어(Hindi) 및 우르두어(Urdu): 남아시아의 주요 언어도 포괄적으로 지원됩니다.
-
아랍어(Arabic): 다양한 방언과 함께 지원되며, 완전히 발음 구별이 가능한 형태로도 제공됩니다.
-
프랑스어(French): 프랑스, 벨기에, 스위스의 방언을 지원합니다.
이 외에도 eSpeak NG는 다양한 유럽어, 아시아어, 아프리카어 및 구성된 언어(예: 에스페란토, 인터링구아 등)를 포함한 여러 언어를 지원하며, 각 언어는 특정 방언과 문자 체계를 지원하기 위한 여러 형태로 제공됩니다. eSpeak NG가 지원하는 전체 언어 목록은 GitHub 저장소의 문서에서 확인할 수 있습니다.
라이선스 안내
eSpeak NG는 GPL v3 및 이후 라이선스로 제공되고 있습니다.
그 외, Windows에서 getopt
지원을 위한 getopt.c
호환성 구현은 BSD-2항 라이선스가 부여된 NetBSD getopt_long
구현에서 가져온 것입니다.
Android는 Google LLC의 상표입니다.
더 읽어보기
eSpeak NG GitHub 저장소
eSpeak 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~