Termux-STT
디바이스 리소스를 활용한 통합 온디바이스 음성인식(STT) 및 순수 Python 128d X-Vector 화자 분리 프레임워크
Unified On-Device Speech-to-Text Utilizing Device Resources & Pure Python 128d X-Vector Speaker Diarization
Architecture & Overview
Whisper.cpp, Vosk, Sherpa-ONNX 3대 네이티브 엔진을 통합하고, 닫힌 형태 순수 Python 128차원 X-Vector 클러스터링을 결합하여 80MB 미만의 초경량 메모리로 100% 온디바이스 실시간 음성인식과 화자 분리를 구현합니다.
Integrates Whisper.cpp, Vosk, and Sherpa-ONNX with a closed-form pure-Python 128-dimensional X-Vector clustering algorithm that operates in under 80MB RAM with zero cloud egress.
Installation & Quickstart
Python (PyPI)
pip install termux-stt
from termux_stt import create_engine
# 1. Initialize Engine (auto-loads native ARM NEON binary & cached model)
engine = create_engine("whisper", model="tiny", lang="en", threads=4)
# 2. Transcribe Audio directly into Subtitles
result = engine.transcribe("samples/jfk_1min.wav")
print("Transcript:\n", result.text)
print("SRT Subtitles:\n", result.to_srt())
# 3. 2-Speaker Diarization without PyTorch
hybrid = create_engine("hybrid", lang="en", num_speakers=2)
diar_result = hybrid.diarize("samples/jfk_1min.wav")
for seg in diar_result.segments:
print(f"[{seg.speaker}] ({seg.start:.1f}s -> {seg.end:.1f}s): {seg.text}")
Node.js / TypeScript (npm)
npm install termux-stt
const { createEngine } = require("termux-stt");
async function main() {
// 1. Initialize Whisper Engine
const engine = createEngine("whisper", { model: "tiny", lang: "en", threads: 4 });
// 2. Transcribe Audio
const result = await engine.transcribe("samples/jfk_1min.wav");
console.log("Transcript:", result.text);
console.log("SRT Subtitles:\n", result.toSrt());
}
main();
Official Documentation & Benchmarks
- Official Architecture & API Reference
- Ecosystem Metrics & Registry Stats
- AMEVA Open-Source Foundation Portal
License
Licensed under the Apache-2.0 License. Copyright (c) 2026 Eunho Kim (@uno-km).
Metadata
Release files for termux-stt 1.2.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| termux_stt-1.2.9.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| termux_stt-1.2.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / termux_stt-1.2.9.tar.gz
| Download URL | termux_stt-1.2.9.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d8a0fb1b78521de37db9422e96927eddc777b3772443d2027d95de817b0f56d0
|
|
BLAKE2b-256 checksum How to use checksums |
d3db5c0834e319764a412fdda9506107880b1c1cc652c3eb1b51deb179d978ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / termux_stt-1.2.9-py3-none-any.whl
| Download URL | termux_stt-1.2.9-py3-none-any.whl |
|---|---|
| Size | 76.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
38b455e5c423e5a2f3ef0ca29ffdff29ba42a6919d9f8f091d47fc7f40caa0c4
|
|
BLAKE2b-256 checksum How to use checksums |
31656dfba72d715dc196126b1c337976331e61f787c4403e6a9f7865753aa0a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|