Two engines for different scenarios:
EngineBest ForChinese QualitySpeedFunASR SenseVoice (default)Chinese, Japanese, Korean⭐⭐⭐ 简体Fast (0.03 RTF)OpenAI WhisperMultilingual, translation⭐⭐ (繁体)Slower
bash
# Default: FunASR SenseVoice (best Chinese)
{baseDir}/scripts/asr.py --input audio.mp3
# Whisper for multilingual / translation
{baseDir}/scripts/asr.py --input audio.mp3 --engine whisper
OptionDefaultDescription--input(required)Input audio file (mp3, wav, m4a, etc.)--enginefunasrASR engine: funasr (SenseVoice) or whisper``--languageautoLanguage code: zh, en, ja, ko, etc. (auto-detect if omitted)--modelbaseWhisper model size: tiny/base/small/medium/large (whisper only)--tasktranscribetranscribe or translate (whisper only)--outputWrite transcript to file (default: stdout)
iic/SenseVoiceSmall (893MB, auto-downloaded from ModelScope)ModelVRAMSpeedAccuracytiny1GBFastestLowbase1GBFastOKsmall2GBMediumGoodmedium5GBSlowBetterlarge~10GBSlowestBest
bash
# Chinese audio → FunASR (default, best quality)
{baseDir}/scripts/asr.py --input meeting.mp3
# Force Chinese language
{baseDir}/scripts/asr.py --input podcast.wav --language zh
# Multilingual audio → Whisper
{baseDir}/scripts/asr.py --input mixed.wav --engine whisper
# Whisper with better model
{baseDir}/scripts/asr.py --input lecture.mp3 --engine whisper --model small
# Translate Chinese speech to English text
{baseDir}/scripts/asr.py --input speech.mp3 --engine whisper --language zh --task translate
# Save transcript to file
{baseDir}/scripts/asr.py --input audio.wav --output transcript.txt
funasr + modelscope (FunASR engine)openai-whisper (Whisper engine)imageio-ffmpeg (bundled ffmpeg binary)~/.cache/)