Myna-Hokkien

Myna-Hokkien is an open-source end-to-end conversational speech model for Singapore Hokkien. Users speak to the model in Hokkien and the model replies in natural-sounding Hokkien speech - no text round-trip required, though text input/output is also supported.

Hokkien is the native language of tens of millions of speakers across Asia, yet it remains almost entirely absent from mainstream speech AI: no existing omni-style model (either open or closed) natively supports Hokkien. Myna-Hokkien is an attempt to close that gap, and to leave behind a reusable recipe for other low-resource language communities to do the same.

Proudly built by iNLP Lab at SUTD.

Model Details

  • Languages: Hokkien / Minnan (闽南语), primarily Singapore-accent in this release
  • Modalities: Audio in → Audio out: full spoken dialogue, text input/output also supported
  • Architecture: Qwen3-Omni
  • License: Apache 2.0

Demo Samples

Examples showcasing the model's Hokkien understanding & generation capabilities.

Input Myna-Hokkien GPT Audio Qwen3.5-Omni-Plus Gemini Live GLM-4-Voice
How is the weather today?
我今天心情有点不好。

Installation

Download Myna-Hokkien into the standard Hugging Face cache, then install the included inference runtime:

pip install --upgrade huggingface_hub

MODEL_DIR="$(hf download iNLP-Lab/Myna-Hokkien --quiet)"
pip install "$MODEL_DIR"

Basic usage — spoken question

import torch
import soundfile as sf
from mynahokkien import MynaHokkien

model = MynaHokkien.from_pretrained(
    "iNLP-Lab/Myna-Hokkien",
    device_map="cuda:0",
    dtype=torch.float16,
)

output = model.generate(
    audio="question.wav",
    language="nan",
    return_text=True,
    return_audio=True,
)

print(output.text)
sf.write("output.wav", output.audio, output.sampling_rate)

Text-query usage

Text is treated as a question or instruction to the Hokkien assistant; it is not treated as a TTS transcript.

output = model.generate(
    text="講一個新加坡福建話的笑話。",
    language="nan",
)
sf.write("output.wav", output.audio, output.sampling_rate)
print(output.text)

Exactly one of audio= and text= must be supplied. This release currently supports language="nan" and the Ethan voice.

To return only one modality:

text_only = model.generate(text="你會曉講福建話無?", return_text=True, return_audio=False)
audio_only = model.generate(text="講一句歡迎詞。", return_text=False, return_audio=True)

Prompt behavior

If prompt= is omitted for audio input, Myna-Hokkien uses this built-in prompt:

Listen to the spoken Hokkien and reply naturally in concise Singapore Hokkien. Always answer in colloquial Singapore Hokkien written in Hanji. Never answer in Mandarin or English. Do not repeat or transcribe the input; respond to it directly.

To override it, pass a different instruction through prompt=:

output = model.generate(
    audio="question.wav",
    prompt="Listen to this audio and reply naturally in Singaporean Hokkien.",
    language="nan",
)

For text input, put the instruction directly in text=.

Citation

@misc{myna-hokkien-2026,
  title  = {Myna-Hokkien: An Open-Source End-to-End Hokkien Spoken Dialogue Model},
  author = {Matthew Christopher Pohadi and Ryner Tan and Wenxuan Zhang},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/iNLP-Lab/Myna-Hokkien}}

Contact & collaboration

This is an active, ongoing project — we're continuing to improve accent coverage, prosody, and expressiveness. We'd love to hear from you if you want to collaborate, have feedback, or run into issues: Wenxuan Zhang.

Downloads last month
2
Safetensors
Model size
35B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support