Skip to main content

PyThaiASR

Python Thai Automatic Speech Recognition

pypiLicenseDownloadCoverage Status

PyThaiASR is a Python package for Automatic Speech Recognition with focus on Thai language. It have offline thai automatic speech recognition model.

License: Apache-2.0 License

Google Colab: Link Google colab

Install

pip install pythaiasr

By default, PyThaiASR uses Typhoon ASR powered by ONNX Runtime for low-latency, lightweight offline and realtime speech recognition on CPU and GPU. On first use, Typhoon model files are automatically downloaded to ~/pythaiasr-data/typhoon-asr-realtime/.

For PyTorch & Transformers models (Wav2Vec2 / Whisper): If you want to use the Wav2Vec2 or Whisper models:

pip install pythaiasr[torch]

For Wav2Vec2 with language model: If you want to use wannaphong/wav2vec2-large-xlsr-53-th-cv8-* with a language model:

pip install pythaiasr[lm]
pip install https://github.com/kpu/kenlm/archive/refs/heads/master.zip

For live audio streaming: If you want to stream live audio from your microphone:

pip install pythaiasr[stream]

Usage

File-based ASR

from pythaiasr import asr

file = "sample.wav"

# Uses Typhoon ASR (FastConformer RNN-T ONNX) by default
print(asr(file))

# Or explicitly select another model (requires pythaiasr[torch])
# print(asr(file, model="airesearch/wav2vec2-large-xlsr-53-th"))
# print(asr(file, model="biodatlab/whisper-small-th-combined"))

Live Audio Streaming

Stream audio directly from your microphone/soundcard in real-time:

from pythaiasr import stream_asr

# Streams audio in real-time using Typhoon ASR by default
for transcription in stream_asr():
    print(transcription, end=" ", flush=True)
    # Press Ctrl+C to stop

And examples/stream_example.py

Real-Time Streaming from File or Microphone

from pythaiasr import FastConformerRNNT, RealtimeStreamASR, stream_from_file, stream_from_mic

model = FastConformerRNNT(device="auto")
streamer = RealtimeStreamASR(model=model, step_sec=0.48)

# Simulate streaming from a pre-recorded audio file
stream_from_file(streamer, "sample.wav")

# Or stream live from microphone with sounddevice
# stream_from_mic(streamer)

API

asr

asr(data: str, model: str = _model_name, lm: bool=False, device: str=None, sampling_rate: int=16_000)
  • data: path of sound file or numpy array of the voice
  • model: The ASR model (default: typhoon_asr)
  • lm: Use language model (for wav2vec2 models with LM)
  • device: device (auto, cpu, cuda)
  • sampling_rate: The sample rate
  • return: thai text from ASR

stream_asr

stream_asr(model: str = _model_name, lm: bool=False, device: str=None, chunk_duration: float=None, sampling_rate: int=16_000)
  • model: The ASR model (default: typhoon_asr)
  • lm: Use language model (for wav2vec2 models with LM)
  • device: device for running model
  • chunk_duration: Duration of each audio chunk in seconds (default: 0.48s for Typhoon, 5.0s for others)
  • sampling_rate: The sample rate (default: 16000)
  • yield: Thai text transcription from each audio chunk

Options for model

  • typhoon_asr / typhoon-asr-realtime (default) - Typhoon FastConformer RNN-T ONNX model (offline & realtime)
  • airesearch/wav2vec2-large-xlsr-53-th - AI RESEARCH - PyThaiNLP model (requires pythaiasr[torch])
  • wannaphong/wav2vec2-large-xlsr-53-th-cv8-newmm - Thai Wav2Vec2 with CommonVoice V8 (newmm tokenizer) (requires pythaiasr[torch])
  • wannaphong/wav2vec2-large-xlsr-53-th-cv8-deepcut - Thai Wav2Vec2 with CommonVoice V8 (deepcut tokenizer) (requires pythaiasr[torch])
  • biodatlab/whisper-small-th-combined - Thai Whisper small model (requires pythaiasr[torch])
  • biodatlab/whisper-th-medium-combined - Thai Whisper medium model (requires pythaiasr[torch])
  • biodatlab/whisper-th-large-combined - Thai Whisper large model (requires pythaiasr[torch])

You can read about models from the list:

Docker

To use this inside of Docker do the following:

docker build -t <Your Tag name> .
docker run docker run --entrypoint /bin/bash -it <Your Tag name>

You will then get access to a interactive shell environment where you can use python with all packages installed.

Release files for pythaiasr 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pythaiasr 2.0.0
File Size Uploaded
pythaiasr-2.0.0.tar.gz 24.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pythaiasr 2.0.0
File Interpreter ABI Platform
pythaiasr-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 45.0 kB

Release files / pythaiasr-2.0.0.tar.gz

Download URL pythaiasr-2.0.0.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d37baeb9d9fd9c68d5653a283a5de3a4b3f4931e5d01732c74074f0778a8af31
BLAKE2b-256 checksum
How to use checksums
90708d6ff56d13a4da00ee76cec18f01dac1b80e05b35c78e08f8f1a1ddd290c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pythaiasr-2.0.0-py3-none-any.whl

Download URL pythaiasr-2.0.0-py3-none-any.whl
Size 20.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da68e766ba82afbc466f6326f3fcd23807c593debabed70de58f7057e08b2aed
BLAKE2b-256 checksum
How to use checksums
9f638dad9efc63c41f0d695168895c092894e0dffcd303d802f7954c9ce5b164
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

2.2.0

2 release files

2.1.0

2 release files

This release

2.0.0 This release

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page