PyThaiTTS
Open Source Thai Text-to-speech library in Python
Google Colab | Docs | Notebooks
License: Apache-2.0 License
Install
Install by pip:
pip install pythaitts
Usage
Basic Usage
from pythaitts import TTS
tts = TTS()
file = tts.tts("ภาษาไทย ง่าย มาก มาก", filename="cat.wav") # It will get wav file path.
wave = tts.tts("ภาษาไทย ง่าย มาก มาก",return_type="waveform") # It will get waveform.
Using Different TTS Models
PyThaiTTS supports multiple TTS models. You can specify which model to use:
from pythaitts import TTS
# Use FastThaiG2P (default) (default voice: thai_som)
# FastThaiG2P Sample Rate is 24000 Hz
tts = TTS(pretrained="fastthaig2p")
file = tts.tts("สวัสดีครับ", speaker_idx="thai_som", filename="output.wav")
# Use Lunarlist ONNX
# Sample Rate is 22050 Hz
tts = TTS(pretrained="lunarlist_onnx")
file = tts.tts("ภาษาไทย ง่าย มาก", filename="output.wav")
# Use VachanaTTS (default voices: th_f_1, th_m_1, th_f_2, th_m_2)
# Sample Rate is 22050 Hz
tts = TTS(pretrained="vachana")
file = tts.tts("สวัสดีครับ", speaker_idx="th_f_1", filename="output.wav")
# Use KhanomTan
# Sample Rate is 16000 Hz
tts = TTS(pretrained="khanomtan")
file = tts.tts("ภาษาไทย", speaker_idx="Linda", filename="output.wav")
Text Preprocessing
PyThaiTTS includes automatic text preprocessing to improve TTS quality:
- Number to Thai text conversion: Converts digits (e.g., "123") to Thai text (e.g., "หนึ่งร้อยยี่สิบสาม")
- Mai yamok (ๆ) expansion: Expands the Thai repetition character (e.g., "ดีๆ" becomes "ดีดี")
Preprocessing is enabled by default:
from pythaitts import TTS
tts = TTS()
# Automatic preprocessing: "มี 5 คนๆ" becomes "มี ห้า คนคน"
file = tts.tts("มี 5 คนๆ", filename="output.wav")
You can disable preprocessing if needed:
file = tts.tts("มี 5 คนๆ", preprocess=False, filename="output.wav")
You can also use preprocessing functions directly:
from pythaitts import num_to_thai, expand_maiyamok, preprocess_text
# Convert numbers to Thai text
print(num_to_thai("123")) # Output: หนึ่งร้อยยี่สิบสาม
# Expand mai yamok
print(expand_maiyamok("ดีๆ")) # Output: ดีดี
# Full preprocessing
print(preprocess_text("มี 5 คนๆ")) # Output: มี ห้า คนคน
You can see more at https://pythainlp.github.io/PyThaiTTS/.
Release files for PyThaiTTS 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pythaitts-0.6.0.tar.gz | 7.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pythaitts-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.2 MB
Release files / pythaitts-0.6.0.tar.gz
| Download URL | pythaitts-0.6.0.tar.gz |
|---|---|
| Size | 7.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4c0a643abe0840f0326aa78dce4829018d47b0bf759dde909f61578072f60e8
|
|
BLAKE2b-256 checksum How to use checksums |
15c7d848b04e884547850bb6d3a13da5a5ae52f59b64a222dd7011e86b781334
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pythaitts-0.6.0-py3-none-any.whl
| Download URL | pythaitts-0.6.0-py3-none-any.whl |
|---|---|
| Size | 7.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bdbe26544416d1179a8d4222bce036f06ea22ea0f25996977e68cc38ab37b1b3
|
|
BLAKE2b-256 checksum How to use checksums |
4d02b7a19f24d9319ac990fe1994fff164d9ce454ee7381b4b04bcbe9eaf159b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|