Repository navigation
v0.7.0
speech, speech.cpp's one executable (tts, asr, voice, info, devices, serve and worker), and the shared library libspeech with its C API, speech.h, in one archive for each of macOS arm64 (Metal), Windows x64 (Vulkan) and Linux x64 (Vulkan, and the CPU alone; glibc 2.34 or later). The README lists the model families and where their converted weights are on Hugging Face.
New
- Qwen3-ASR 0.6B and 1.7B, speech recognition of 30 languages, checked stage by stage against the official windowed implementation. A request can force the language and give a
promptof context. Audio over 1200 s is split as the official code splits it. The files are in sakasegawa/Qwen3-ASR-0.6B-GGUF and sakasegawa/Qwen3-ASR-1.7B-GGUF. - parakeet-tdt-0.6b-v3 (25 European languages) and reazonspeech-nemo-v2 (Japanese, long recordings), with token and segment times for every FastConformer model.
- Input audio at any rate, resampled by the library as torchaudio resamples it.
- Every request reports why it stopped:
complete,max_seconds,model_limitorcancelled.
What a caller must change from 0.6.0
- Model files. Every model is one GGUF file in layout 1, its codec inside, named by GGUF's convention. 0.7.0 refuses the files of earlier releases, and earlier releases cannot read these. Each Hugging Face repository now holds the new file; the old ones remain in its history.
- Irodori-TTS voice files. These now carry the hash of their codec. Make them again with
speech voice. - One executable.
speech tts|asr|voice|info|devices|serve|workerreplacesspeech-workerand the separate tools of 0.6.0. The archives arespeech-<version>-<platform>.zip. - C API 3.0 (SOVERSION 3).
- Requests are opaque, with setters that check each value as it is set.
- The options form one vocabulary,
SPEECH_OPT_*. - Model information can be read without loading the model.
- Statuses name what failed, and each request can be cancelled.
- Worker protocol 2.
readycarries the model's information.- It has
synthesize,transcribewithchunkandpeek,add_voice,info,count_tokensandcancel. - Every request gets exactly one terminal message (
end,errororcancelled).
The README describes each of these, and the decision records in docs/adr/ say why.
What's Changed
- Point the README to parakeet-tdt_ctc-0.6b-ja on Hugging Face and name its repositories by model line by @nyosegawa in #31
- Point the README to one Hugging Face repository per upstream model by @nyosegawa in #32
- Recognize speech with parakeet-tdt-0.6b-v3 through the FastConformer family by @nyosegawa in #33
- Recognize speech with reazonspeech-nemo-v2 through the FastConformer family by @nyosegawa in #34
- Resample recognition audio and Irodori-TTS references to the model's rate by @nyosegawa in #35
- Give FastConformer's tokens their times and cut its segments as NeMo does by @nyosegawa in #36
- Read every model from one GGUF file of layout 1, its codec and constants included by @nyosegawa in #37
- Replace the C API with version 3.0, which checks each request against the options its model declares by @nyosegawa in #38
- Serve every program from one speech executable that speaks worker protocol 2 by @nyosegawa in #39
- Refuse a model file whose tensors have another shape or type than its keys call for by @nyosegawa in #40
- Read Qwen3-TTS's key/value cache through views instead of copying it at every step by @nyosegawa in #41
- Write each model's identity and languages in GGUF's standard keys and name its file by GGUF's convention by @nyosegawa in #42
- Share the Qwen3 decoder and its BPE tokenizer through src/common, and prefill in blocks by @nyosegawa in #43
- Dump Qwen3-ASR's stages from its windowed reference and decide to port it by @nyosegawa in #44
- Convert Qwen3-ASR to one GGUF file and run its frontend and windowed encoder by @nyosegawa in #45
- Recognize speech with Qwen3-ASR from every entry point, with a prompt option and stop reasons by @nyosegawa in #46
- Bring text to NFC before the Qwen2 tokenizer splits it, as the official tokenizer does by @nyosegawa in #47
- Raise the version to 0.7.0 by @nyosegawa in #48
Full Changelog: v0.6.0...v0.7.0