Local speech recognition & synthesis

Generate Korean speech with OmniVoice's 600+ language and dialect coverage

A 0.6B model turns text into speech, with non-commercial terms on the weights.

OmniVoice is a 0.6B multilingual TTS1 model whose card describes coverage of 600+ languages and dialects. Its code is Apache 2.0, but pretrained weights are CC-BY-NC and do not allow commercial use. Check the card's language and speaking examples, then evaluate the actual pronunciation yourself.

Requirements and key details
  • Generate speech from text in multiple languages, including Korean.
  • The code and pretrained weights have different licenses.
  • The CC-BY-NC weight terms restrict commercial use.

Generate speech in multiple languages from text

OmniVoice is K2-FSA’s 0.6B TTS model. Its card describes more than 600 languages and dialects and provides a zero-shot example that reads text in the voice of a reference recording and transcript. Check names and numbers with Korean text. OmniVoice model card · Official repository

An open book, a small computer, and a speaker on a desk
Choose the text and output language before synthesis.

Check the repository example and hardware setup first

The model card provides CUDA-specific PyTorch2 installs for NVIDIA GPUs and standard PyTorch for Apple Silicon. The example below uses CUDA3. Install the packages in a virtual environment4 and prepare a short Korean reference recording and its transcript as ref.wav and ref.txt.

Install OmniVoice and WAV-writing packages
python -m pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 --extra-index-url https://download.pytorch.org/whl/cu128
python -m pip install omnivoice soundfile

Test Korean text and inspect pronunciation

Save the code below as generate.py and run it; korean.wav appears in the current folder. The example synthesizes the Korean line in the voice and delivery of ref.wav. Use your own voice or a reference recording you have permission to use.

Generate a Korean WAV from reference speech
from omnivoice import OmniVoice
import soundfile as sf
import torch

model = OmniVoice.from_pretrained("k2-fsa/OmniVoice", device_map="cuda:0", dtype=torch.float16)
with open("ref.txt", encoding="utf-8") as f:
    ref_text = f.read().strip()
audio = model.generate(text="오늘 회의는 오후 두 시에 시작합니다.", ref_audio="ref.wav", ref_text=ref_text)
sf.write("korean.wav", audio[0], 24000)
Run generate.py
python generate.py
A microphone, headphones, and a monitor showing an audio waveform
Listen to the generated speech and check names and prosody.

Keep the code and weight licenses separate

OmniVoice code is Apache 2.0, while pretrained weights use CC-BY-NC. Because CC-BY-NC is non-commercial, do not bundle these pretrained weights in a commercial app or service. The open-source code license does not make the full model commercially unrestricted. Weight license and model card

Create a final sample from the text you will actually use

After the short test, generate a sample at the length you plan to publish and listen through the whole file. Check number readings and pronunciation, along with volume and pauses if you will mix it with background music. Local generation does not replace privacy, synthetic-voice disclosure, voice-rights, or service-policy requirements.

Do not ship this commercially on the strength of the code licence alone. The pretrained weights carry different terms, so check the weight usage scope separately before including it in a product.

Headphones, an audio player, and an open notebook on a desk
Review code and weight licenses separately before choosing a use.

Terminology notes

  1. Text-to-Speech — Technology that converts text into spoken audio with pronunciation and prosody.

    Back to the text
  2. PyTorch — A software framework for building and running AI models. Check the compatible PyTorch version and hardware support along with the model.

    Back to the text
  3. CUDA — A software platform for general-purpose computing on NVIDIA GPUs.

    Back to the text
  4. Python virtual environment — An isolated space for installing Python packages per project, helping reduce package-version conflicts.

    Back to the text

Frequently asked questions

What should you check first in this article?
OmniVoice is a 0.6B multilingual TTS model whose card describes coverage of 600+ languages and dialects. Its code is Apache 2.0, but pretrained weights are CC-BY-NC and do not allow commercial use. Check the card's language and speaking examples, then evaluate the actual pronunciation yourself.
When is it better not to choose this?
Do not ship this commercially on the strength of the code licence alone. The pretrained weights carry different terms, so check the weight usage scope separately before including it in a product.
Where can you check the conditions and sources?
OmniVoice is K2-FSA’s 0.6B TTS model. Its card describes more than 600 languages and dialects and provides a zero-shot example that reads text in the voice of a reference recording and transcript. Check names and numbers with Korean text. [OmniVoice model card](https://huggingface.co/k2-fsa/OmniVoice) · [Official repository](https://github.com/k2-fsa/OmniVoice)