chore: import upstream snapshot with attribution
This commit is contained in:
+117
@@ -0,0 +1,117 @@
|
||||
# Command-Line Interface
|
||||
|
||||
FunASR provides an agent-friendly CLI for speech recognition from the terminal. Designed for AI agents (Claude Code, Codex, Cursor), shell scripts, and automation pipelines.
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install funasr
|
||||
```
|
||||
|
||||
## Basic Usage
|
||||
|
||||
```bash
|
||||
# Transcribe audio (simplest)
|
||||
funasr audio.wav
|
||||
|
||||
# Specify model
|
||||
funasr audio.wav --model paraformer
|
||||
|
||||
# JSON output (structured, parseable)
|
||||
funasr audio.wav --output-format json
|
||||
|
||||
# SRT subtitles
|
||||
funasr audio.wav --output-format srt --output-dir ./subs
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
| Option | Short | Default | Description |
|
||||
|--------|-------|---------|-------------|
|
||||
| `--model` | `-m` | sensevoice | Model: sensevoice, paraformer, paraformer-en, fun-asr-nano |
|
||||
| `--hub` | `-H` | ms | Model hub: ms (ModelScope) or hf (Hugging Face) |
|
||||
| `--language` | `-l` | auto | Language: zh, en, ja, ko, yue, auto |
|
||||
| `--device` | | auto | Device: cuda:0, cpu |
|
||||
| `--output-format` | `-f` | text | Output: text, json, srt, tsv |
|
||||
| `--output-dir` | `-o` | stdout | Write output files to directory |
|
||||
| `--timestamps` | | off | Include word-level timestamps |
|
||||
| `--spk` | | off | Enable speaker diarization |
|
||||
| `--hotwords` | | none | Comma-separated hotwords |
|
||||
| `--verbose` | `-v` | off | Show loading/timing info on stderr |
|
||||
|
||||
## Output Formats
|
||||
|
||||
### text (default)
|
||||
Plain transcription text, one result per file. Best for piping:
|
||||
```bash
|
||||
funasr audio.wav | wc -w
|
||||
```
|
||||
|
||||
### json
|
||||
Structured output for programmatic use:
|
||||
```json
|
||||
{
|
||||
"text": "欢迎大家来体验达摩院推出的语音识别模型",
|
||||
"segments": [
|
||||
{"start": 0, "end": 5540, "text": "欢迎大家来体验达摩院推出的语音识别模型"}
|
||||
],
|
||||
"file": "audio.wav",
|
||||
"model": "sensevoice",
|
||||
"language": "auto",
|
||||
"duration_s": 0.29
|
||||
}
|
||||
```
|
||||
|
||||
### srt
|
||||
SubRip subtitle format:
|
||||
```
|
||||
1
|
||||
00:00:00,000 --> 00:00:05,540
|
||||
欢迎大家来体验达摩院推出的语音识别模型
|
||||
```
|
||||
|
||||
### tsv
|
||||
Tab-separated values (start/end in seconds):
|
||||
```
|
||||
start end text
|
||||
0.000 5.540 欢迎大家来体验达摩院推出的语音识别模型
|
||||
```
|
||||
|
||||
## Advanced Examples
|
||||
|
||||
```bash
|
||||
# Speaker diarization + JSON
|
||||
funasr meeting.wav --spk --timestamps -f json
|
||||
|
||||
# Batch transcribe all WAV files
|
||||
funasr *.wav --output-format srt --output-dir ./output
|
||||
|
||||
# Chinese with hotwords
|
||||
funasr audio.wav --model paraformer --language zh --hotwords "FunASR,达摩院"
|
||||
|
||||
# Pipe to jq for processing
|
||||
funasr audio.wav -f json | jq '.text'
|
||||
|
||||
# Load models from Hugging Face instead of ModelScope
|
||||
funasr audio.wav --hub hf --model fun-asr-nano
|
||||
|
||||
# Use with AI agents
|
||||
result=$(funasr audio.wav -f json)
|
||||
echo "$result" | jq -r '.text'
|
||||
```
|
||||
|
||||
## Models
|
||||
|
||||
| Model | Languages | Speed | Best for |
|
||||
|-------|-----------|-------|----------|
|
||||
| sensevoice | 50+ | ~70ms/10s | General use, multilingual |
|
||||
| paraformer | zh + mixed | ~60ms/10s | Chinese production (with punctuation) |
|
||||
| paraformer-en | en | ~60ms/10s | English |
|
||||
| fun-asr-nano | 31 | varies | Encoder+LLM, complex audio |
|
||||
|
||||
## Legacy CLI
|
||||
|
||||
The original Hydra-based CLI is available as `funasr-hydra`:
|
||||
```bash
|
||||
funasr-hydra ++model=paraformer-zh ++input=audio.wav
|
||||
```
|
||||
Reference in New Issue
Block a user