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 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 Lunarlist ONNX (default)
# Sample Rate is 22050 Hz
tts = TTS(pretrained="lunarlist_onnx")
file = tts.tts("ภาษาไทย ง่าย มาก", filename="output.wav")
# Use FastThaiG2P (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 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.5.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.5.0.tar.gz | 7.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pythaitts-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.2 MB
Release files / pythaitts-0.5.0.tar.gz
| Download URL | pythaitts-0.5.0.tar.gz |
|---|---|
| Size | 7.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
07d5ce70512fa40a7562a4a0a4b2289ed789a67bcc7c1de7ed23f199c24e7ae4
|
|
BLAKE2b-256 checksum How to use checksums |
99914b3e023a68d5556c31627013fd929d9855cabcfab2dea651eb19e4b98860
|
| 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.5.0-py3-none-any.whl
| Download URL | pythaitts-0.5.0-py3-none-any.whl |
|---|---|
| Size | 7.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8971ae1b951ce7e77f71171a406f6599c5b3f928c6221c4c3be45a2079f7087
|
|
BLAKE2b-256 checksum How to use checksums |
63637bdde0bcd5cc6a331123ceb78aaece53fa1a8c6a6af3e4311224c700275d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|