3.4 KiB
Index-Echo-S2TT
Index-Echo-S2TT translates Chinese speech into English, Spanish, or Japanese text. It returns the source transcript and translation as timestamped subtitle cues.
| Field | Value |
|---|---|
| Family | index_echo |
| Task | asr |
| Mode | offline |
| Input | Chinese speech |
| Output | Timestamp, source transcript, and translation per sentence |
| Checkpoints | 2B: original precision, Q8_0, experimental Q4_K; 9B: original precision and Q8_0 |
Convert
Download the official 2B checkpoint, then create the GGUF with the debug converter and the model-specific conversion script. The resulting file includes the model configuration and tokenizer.
conda run -n qwen3-tts python tests/index_echo/convert_s2tt_gguf.py \
--source-dir /path/to/Index-Echo-S2TT-2B \
--output-dir /path/to/Index-Echo-S2TT-GGUF
To convert the official 9B checkpoint, pass its source directory and a storage type:
conda run -n qwen3-tts python tests/index_echo/convert_s2tt_gguf.py \
--source-dir /path/to/Index-Echo-S2TT-9B \
--output-dir /path/to/Index-Echo-S2TT-GGUF --type q8_0
The same --type choices apply to 2B. Use orig for original precision,
q8_0 for 8-bit weights, or q4_k for the smallest 2B package. With native
BF16 decoder weights, orig also rounds decoder activations to BF16, as in
the official Python default. The 2B Q4_K package keeps its linear-attention
QKV projections at Q8_0 because GGML Q4_K
cannot quantize those tensors. 9B Q4_K is not packaged: it repeated or
omitted speech on short clips and returned incomplete subtitle cues on a
long-form request. Use 9B Q8_0 or original precision instead.
CLI
build/debug/bin/audiocpp_cli --task asr --family index_echo \
--model /path/to/Index-Echo-S2TT-GGUF/index-echo-s2tt-2b-orig.gguf \
--backend cuda --audio speech.wav \
--request-option target_language=en \
--text-out subtitles.txt --log
Select index-echo-s2tt-9b-q8_0.gguf for the 9B variant.
For long recordings, the runtime processes windows up to 60 seconds and carries
the preceding five windows' transcript and translation as context. The auto
mode chooses quiet boundaries. It does not run the official Python Silero VAD;
window boundaries and, consequently, some output may differ.
Request Options (use with --request-option)
| Option | Default | Meaning |
|---|---|---|
target_language |
en |
en, es, or ja. |
max_tokens |
2000 |
Maximum generated text tokens per window. Legacy max_text_tokens remains accepted. |
temperature |
0 |
Zero uses greedy decoding; a positive value samples and can interrupt repetition. |
seed |
0 |
Sampling seed when temperature is positive. |
glossary |
empty | Translation terminology supplied in the prompt. |
audio_chunk_mode |
auto |
auto or quiet_energy uses quiet boundaries; fixed uses equal windows; none processes the full input as one window. |
audio_chunk_duration_sec |
60 |
Maximum window duration in seconds, from 1 to 60. |
Session Options (use with --session-option)
| Option | Default | Meaning |
|---|---|---|
index_echo.weight_type |
native |
Runtime weight storage type. |
Index-Echo-S2ST speech generation is not supported by this family yet.