본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 20. 15:46

Lyrcaxis/KokoroSharp

요약

KokoroSharp은 ONNX Runtime을 기반으로 구축된 C#용 Kokoro TTS 추론 엔진입니다. NuGet 패키지를 통해 간편하게 통합할 수 있으며, 다양한 언어와 화자를 지원하는 고성능 텍스트 음성 변환 기능을 제공합니다.

핵심 포인트

  • NuGet 패키지를 통한 간편한 Plug & Play 통합 지원
  • 텍스트 세그먼트 스트리밍으로 즉각적인 음성 응답 구현
  • 음성 믹싱 및 백그라운드 워커를 통한 선형 작업 스케줄링 지원
  • Windows, Linux, MacOS 등 다양한 플랫폼 호환

HEARME.mp4

KokoroSharp는 ONNX runtime을 사용하여 완전히 C#으로 구축된 Kokoro TTS를 위한 풀 기능 추론 엔진 (inference engine)입니다. 개발자가 여러 화자와 언어를 활용하여 유연하고 빠른 텍스트 음성 변환 (text-to-speech) 합성을 수행할 수 있도록 지원합니다.

  • nuget 패키지를 통한 Plug & Play 통합. 모든 종속성 (dependencies)이 자동으로 처리됩니다.
  • Nuget 패키지에는 hexgrad가 Kokoro 82M v1.0을 출시할 때 공개한 모든 음성 (voices)이 포함되어 있습니다.
  • 초보자와 숙련된 사용자 모두에게 적합하도록 설계된 상위 수준 인터페이스 (High-level interface).
  • 원활한 텍스트 음성 변환을 위한 텍스트 세그먼트 스트리밍 (Text-segment streaming). 응답이 즉각적인 것처럼 느껴집니다.
  • 혼합되는 음성의 수에 제한이 없는 음성 믹싱 (Voice mixing) 및 혼합된 음성을 저장/로드하는 기능.
  • 디스패처 (dispatcher)로서 백그라운드 워커 (background worker)를 사용하는 선형 작업 스케줄링 (Linear job scheduling).
  • 사전 통합된 오디오 큐 (audio queue) 처리를 통한 선택적 멀티 플랫폼 재생 지원.

지원하는 언어/억양:

[미국 영어, 영국 영어, 중국어(Mandarin), 일본어, 힌디어, 스페인어, 프랑스어, 이탈리아어, 브라질/포르투갈어]

.

Windows, Linux 및 MacOS에서:
Nuget(패키지 관리자 또는 CLI)를 통해 설치하면 준비가 완료됩니다!
올바른 패키지 선택:
KokoroSharp.CPU는 Plug & Play 방식입니다. GPU 지원에 대해서는 RUNNING_ON_GPU.md를 참조하세요.
기타 플랫폼: 위의 플랫폼 이외의 플랫폼의 경우, 개발자가 자체적인 음소화 (phonemization) 솔루션을 제공해야 합니다. 내장된 토크나이저 (tokenizer)는 원시 (phonemes -> tokens) 변환을 지원합니다.

이 패키지는 모든 .NET 플랫폼에서 사용할 수 있지만, 통합된 음소화 (phonemization)는 현재 eSpeak NG 백엔드에서만 사용할 수 있습니다.
KokoroTTS tts = KokoroTTS.LoadModel(); // 모델을 로드하거나 다운로드합니다 (~full precision 기준 약 320MB)
KokoroVoice heartVoice = KokoroVoiceManager.GetVoice("af_heart"); // 원하는 음성을 가져옵니다.
while (true) { tts.SpeakFast(Console.ReadLine(), heartVoice); } // .. 그리고 텍스트를 말하게 하세요!
...

위의 내용은 가장 높은 수준(highest level)에서 시작할 수 있는 간단한 방법입니다. 더 많은 제어 기능이 필요하다면, 작업 스케줄링(job scheduling), 음성 믹싱(voice mixing), 그리고 화자 독립적인(speaker-agnostic) 장기 재생 큐잉(playback queuing)과 같은 더 고급 기능들을 다루는 예제 Program을 확인해 보세요.

모델은 taylorchu의 releases에서 찾을 수 있으며, KokoroTTS.LoadModel("path/to/model")을 통해 로드하거나, KokoroTTS.LoadModel()을 사용하여 자동으로 다운로드할 수 있습니다. 백그라운드 로딩(background loading)을 위해 KokoroTTS.LoadModel의 다양한 오버로드(overloads)를 확인해 보세요.

KokoroSharp은 예외(exception)를 던지는 대신 잠재적인 오용을 로그로 기록함으로써 원활한 개발자 경험(developer experience)을 우선시합니다. 가능한 한, 라이브러리는 중단을 최소화하기 위해 문제를 자동으로 해결하려고 시도합니다.

AI 모델 및 재생 장치와의 모든 통신은 백그라운드 스레드(background threads)에서 이루어지므로, 메인 스레드(main thread)는 UI 렌더링에 평온하게 집중할 수 있습니다. 이 라이브러리는 스레드 안전성(thread-safety)을 염두에 두고 세심하게 설계되었습니다.

voices 폴더는 빌드 시 빌드 경로로 자동 복사되어 즉시 액세스할 수 있습니다. 언급된 espeak 백엔드(backends)도 마찬가지입니다. 개발자는 앱을 배포할 때 이를 제거하도록 선택할 수 있습니다. -
LoadVoicesFromPath 옵션이 존재한다는 점을 유의하세요. 이는 개발자가 KokoroSharp을 텍스트 음성 변환(text-to-speech synthesis)에 활용하는 프로젝트를 배포할 때, 자체적인 커스텀 음성 로딩 로직을 구현하고자 하는 경우를 위한 것입니다. -
또한, 내장된 토큰화(text -> tokens)는 필수 사항이 아니며, 개발자가 선택한 음소화(phonemization) 솔루션을 통해 사전 음소화된 입력을 제공한다면 Android/iOS와 같은 플랫폼에서는 이를 우회할 수 있습니다. -
음소 리터럴(Phoneme Literals)의 경우, 다음과 같은 구문을 사용할 수 있습니다:

"[tomato](/təmeɪtoʊ/) [tomato](/təmɑːtoʊ/).".

  • 이 프로젝트는 MIT License 라이선스 하에 배포됩니다.
  • Kokoro 82M 모델과 그 음성들은 Apache License 하에 배포됩니다.
  • eSpeak NG는 GPLv3 License 라이선스 하에 배포됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub ML Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0