voice_audio_multi/docs/models/index_echo.md
Fabio c36510c21e
Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
Initial import: audio.cpp with Orange Pi documentation
2026-11-04 19:05:22 +01:00

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.