Vietnamese Streaming Automatic Speech Recognition Library
Project description
🎙️ ViStreamASR - Real-Time Vietnamese Speech Recognition
ViStreamASR is a simple Vietnamese Streaming Automatic Speech Recognition library for real-time audio processing.
Features
- 🎯 Streaming ASR: Real-time audio processing with configurable chunk sizes
- 🇻🇳 Vietnamese Optimized: Specifically designed for Vietnamese speech recognition
- 📦 Simple API: Easy-to-use interface with minimal setup
- ⚡ High Performance: CPU/GPU support
Installation
pip install ViStreamASR
Installation from Source
For development or to use the latest version:
# Clone the repository
git clone https://github.com/nguyenvulebinh/ViStreamASR.git
cd ViStreamASR
# Install dependencies
pip install -r requirements.txt
# Option 1: Use directly from source
python test_library.py # Test the installation
# Option 2: Install in development mode
pip install -e .
Using from Source
When using from source, import the modules directly:
import sys
sys.path.insert(0, 'src')
from streaming import StreamingASR
# Initialize and use
asr = StreamingASR()
for result in asr.stream_from_file("audio.wav"):
print(result['text'])
Quick Start
Python API
from ViStreamASR import StreamingASR
# Initialize ASR
asr = StreamingASR()
# Process audio file
for result in asr.stream_from_file("audio.wav"):
if result['partial']:
print(f"Partial: {result['text']}")
if result['final']:
print(f"Final: {result['text']}")
Command Line
# Basic transcription
vistream-asr transcribe audio.wav
API Reference
StreamingASR
from ViStreamASR import StreamingASR
# Initialize with options
asr = StreamingASR(
chunk_size_ms=640, # Chunk size in milliseconds
auto_finalize_after=15.0, # Auto-finalize after seconds
debug=False # Enable debug logging
)
# Stream from file
for result in asr.stream_from_file("audio.wav"):
# result contains:
# - 'partial': True for partial results
# - 'final': True for final results
# - 'text': transcription text
# - 'chunk_info': processing information
pass
Advanced Usage
For low-level control:
from ViStreamASR import ASREngine
engine = ASREngine(chunk_size_ms=640, debug_mode=True)
engine.initialize_models()
# Process audio chunks directly
result = engine.process_audio(audio_chunk, is_last=False)
Model Information
- Language: Vietnamese
- Architecture: U2-based streaming ASR
- Model Size: ~2.7GB (cached after first download)
- Sample Rate: 16kHz (automatically converted)
- Optimal Chunk Size: 640ms
How U2 Streaming Works
The following picture shows how U2 (Unified Streaming and Non-streaming) architecture works:
The U2 model enables both streaming and non-streaming ASR in a unified framework, providing low-latency real-time transcription while maintaining high accuracy.
Performance
- RTF: ~0.34x (faster than real-time)
- Latency: ~640ms with default settings
- GPU Support: Automatic CUDA acceleration when available
CLI Commands
# Transcription
vistream-asr transcribe <file> # Basic transcription
vistream-asr transcribe <file> --chunk-size 640 # Custom chunk size
vistream-asr transcribe <file> --no-debug # Clean output
# Information
vistream-asr info # Library info
vistream-asr version # Version
Requirements
System Requirements
- RAM: Minimum 5GB RAM
- CPU: Minimum 2 cores
- Performance: RTF 0.3-0.4x achievable on CPU-only systems meeting above specs
- GPU: Supports GPU acceleration for better performance, but CPU-only operation still achieves RTF 0.3-0.4x
Software Requirements
- Python 3.8+
- PyTorch 2.5+
- TorchAudio 2.5+
- NumPy 1.19.0+
- Requests 2.25.0+
- flashlight-text
- librosa
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vistreamasr-0.1.0.tar.gz.
File metadata
- Download URL: vistreamasr-0.1.0.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05ec7af40f8d5fa30c73096658c6980c1219f14ba59a66608e7698f7298bc439
|
|
| MD5 |
61cc0c22baf757c8b415d1f16b471a98
|
|
| BLAKE2b-256 |
e22dd98e7484ab91ffba32657a22463ff3cba3e702123fc8993947d4256e662a
|
File details
Details for the file vistreamasr-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vistreamasr-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f8219178e40606f3dcad3b204f64dab6e5bd083d8a333b20dbbdd36c2c72476
|
|
| MD5 |
39b4c9ad748c8ecfc50c90354b1f3f46
|
|
| BLAKE2b-256 |
c960df23f0ebef88e3e72672f31f13af751acf6cd672f7d4e3a47266702ace86
|