« CrispASR » : différence entre les versions
De Le Wiki de Lug
Autres actions
| (5 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 6 : | Ligne 6 : | ||
# cd CrispASR | # cd CrispASR | ||
* On installe quelques dépendances avant la compilation ( activer [[Debian_APT#Dépôts_contrib_et_non-free|les dépôts contrib et non-free]] si nécessaire) : | * On installe quelques dépendances avant la compilation ( activer [[Debian_APT#Dépôts_contrib_et_non-free|les dépôts contrib et non-free]] si nécessaire) : | ||
# apt update | # apt update && apt upgrade | ||
# apt install libopencore-amrnb-dev libopencore-amrwb-dev libopus-dev libopusfile-dev libopenblas-dev ccache libfdk-aac-dev libsentencepiece-dev sentencepiece libopenblas-dev libnccl2 libnccl-dev libmp3lame-dev | # apt install libopencore-amrnb-dev libopencore-amrwb-dev libopus-dev libopusfile-dev libopenblas-dev ccache libfdk-aac-dev libsentencepiece-dev sentencepiece libopenblas-dev libnccl2 libnccl-dev libmp3lame-dev ffmpeg | ||
# ln -s /usr/lib/x86_64-linux-gnu/libopenblas.so /usr/local/lib/libcblas.so | # ln -s /usr/lib/x86_64-linux-gnu/libopenblas.so /usr/local/lib/libcblas.so | ||
# ldconfig | # ldconfig | ||
| Ligne 17 : | Ligne 17 : | ||
Version NVIDIA avec CUDA — nécessite l’installation préalable du CUDA Toolkit : | Version NVIDIA avec CUDA — nécessite l’installation préalable du CUDA Toolkit : | ||
# export CUDACXX=/usr/local/cuda-<font color=blue>13.3</font>/bin/nvcc | # export CUDACXX=/usr/local/cuda-<font color=blue>13.3</font>/bin/nvcc | ||
# cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON - | # cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DGGML_CUDA_FA_QUANTS=all -DGGML_LTO=ON | ||
Version Apple Silicon avec Metal : | Version Apple Silicon avec Metal : | ||
| Ligne 81 : | Ligne 81 : | ||
===== [https://huggingface.co/cstr/qwen3-tts-1.7b-base-GGUF Qwen3-TTS-12Hz-1.7B-Base] ===== | ===== [https://huggingface.co/cstr/qwen3-tts-1.7b-base-GGUF Qwen3-TTS-12Hz-1.7B-Base] ===== | ||
Voir [[Client_Hugging_Face|Client Hugging Face]] | Voir [[Client_Hugging_Face|Client Hugging Face]] | ||
# hf download cstr/qwen3-tts-1.7b-base-GGUF --include "*q8*.gguf" --local-dir /opt/models/tts/qwen3-tts-1.7b-base-GGUF/ | # hf download cstr/qwen3-tts-1.7b-base-GGUF --include "*q8*.gguf" --local-dir /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0 | ||
# hf download cstr/qwen3-tts-tokenizer-12hz-GGUF --include "qwen3-tts-tokenizer-12hz.gguf" --local-dir /opt/models/tts/qwen3-tts-1.7b-base-GGUF/ | # hf download cstr/qwen3-tts-tokenizer-12hz-GGUF --include "qwen3-tts-tokenizer-12hz.gguf" --local-dir /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0 | ||
# vi /etc/systemd/system/crispasr-tts.service | # vi /etc/systemd/system/crispasr-tts.service | ||
| Ligne 97 : | Ligne 97 : | ||
--server \ | --server \ | ||
--backend qwen3-tts \ | --backend qwen3-tts \ | ||
-m /opt/models/tts/qwen3-tts-1.7b-base-GGUF/ | -m /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0/qwen3-tts-12hz-1.7b-base-q8_0.gguf \ | ||
--codec-model /opt/models/tts/qwen3-tts-1.7b-base-GGUF/ | --codec-model /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0/qwen3-tts-tokenizer-12hz.gguf \ | ||
--voice-dir /opt/voices \ | --voice-dir /opt/voices \ | ||
--i-have-rights \ | --i-have-rights \ | ||
--language <font color="blue">fr</font> \ | --language <font color="blue">fr</font> \ | ||
--host <font color="blue">0.0.0.0</font> \ | --host <font color="blue">0.0.0.0</font> \ | ||
--tts-pad-silence-ms <font color="blue"> | --tts-pad-silence-ms <font color="blue">0</font> \ | ||
--tts-cfg-scale <font color="blue"> | --tts-cfg-scale <font color="blue">1</font> \ | ||
--tts-steps <font color="blue">32</font> \ | --tts-steps <font color="blue">32</font> \ | ||
--port <font color="blue">7981</font> | --port <font color="blue">7981</font> | ||
| Ligne 160 : | Ligne 160 : | ||
--host <font color="blue">0.0.0.0</font> \ | --host <font color="blue">0.0.0.0</font> \ | ||
--tts-pad-silence-ms <font color="blue">200</font> \ | --tts-pad-silence-ms <font color="blue">200</font> \ | ||
--tts-cfg-scale <font color="blue"> | --tts-cfg-scale <font color="blue">1</font> \ | ||
--tts-steps <font color="blue">32</font> \ | --tts-steps <font color="blue">32</font> \ | ||
--port <font color="blue">7981</font> | --port <font color="blue">7981</font> | ||
Dernière version du 23 octobre 2026 à 18:06
Installation
- On récupère le projet :
# cd /opt/ # git clone --recurse-submodules https://github.com/CrispStrobe/CrispASR # cd CrispASR
- On installe quelques dépendances avant la compilation ( activer les dépôts contrib et non-free si nécessaire) :
# apt update && apt upgrade # apt install libopencore-amrnb-dev libopencore-amrwb-dev libopus-dev libopusfile-dev libopenblas-dev ccache libfdk-aac-dev libsentencepiece-dev sentencepiece libopenblas-dev libnccl2 libnccl-dev libmp3lame-dev ffmpeg # ln -s /usr/lib/x86_64-linux-gnu/libopenblas.so /usr/local/lib/libcblas.so # ldconfig
- On configure la compilation en choisissant le backend adapté au matériel utilisé.
Version CPU :
# cmake -B build -DCMAKE_BUILD_TYPE=Release
Version NVIDIA avec CUDA — nécessite l’installation préalable du CUDA Toolkit :
# export CUDACXX=/usr/local/cuda-13.3/bin/nvcc # cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DGGML_CUDA_FA_QUANTS=all -DGGML_LTO=ON
Version Apple Silicon avec Metal :
# cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_METAL=ON
Version Vulkan — nécessite l’installation préalable des bibliothèques et outils de développement Vulkan :
# cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_VULKAN=ON
- On lance ensuite la compilation :
# cmake --build build -j$(nproc)
Les exécutables sont générés dans le répertoire /opt/CrispASR/build/bin/.
Mise à jour
# cd /opt/CrispASR/ # rm -r build # git pull --recurse-submodules # export CUDACXX=/usr/local/cuda-13.3/bin/nvcc # cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DGGML_CUDA_FA_ALL_QUANTS=ON -DGGML_LTO=ON # cmake --build build -j$(nproc)
Exemples
Speech-to-Text
Voir Client Hugging Face
# hf download cstr/parakeet-tdt-0.6b-v3-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/stt/parakeet-tdt-0.6b-v3/q8_0
# vi /etc/systemd/system/crispasr-stt.service
[Unit]
Description=CrispASR Speech-to-Text Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/CrispASR
Environment="CRISPASR_API_KEYS=masuperclef"
ExecStart=/opt/CrispASR/build/bin/crispasr \
--server \
--backend parakeet \
-m /opt/models/stt/parakeet-tdt-0.6b-v3/q8_0/parakeet-tdt-0.6b-v3-q8_0.gguf \
--language auto \
--host 0.0.0.0 \
--port 7980
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Text-to-Speech
Voir Client Hugging Face
# hf download cstr/qwen3-tts-1.7b-base-GGUF --include "*q8*.gguf" --local-dir /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0 # hf download cstr/qwen3-tts-tokenizer-12hz-GGUF --include "qwen3-tts-tokenizer-12hz.gguf" --local-dir /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0
# vi /etc/systemd/system/crispasr-tts.service
[Unit]
Description=CrispASR Text-to-Speech Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/CrispASR
Environment="CRISPASR_API_KEYS=masuperclef"
ExecStart=/opt/CrispASR/build/bin/crispasr \
--server \
--backend qwen3-tts \
-m /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0/qwen3-tts-12hz-1.7b-base-q8_0.gguf \
--codec-model /opt/models/tts/qwen3-tts-1.7b-base-GGUF/q8_0/qwen3-tts-tokenizer-12hz.gguf \
--voice-dir /opt/voices \
--i-have-rights \
--language fr \
--host 0.0.0.0 \
--tts-pad-silence-ms 0 \
--tts-cfg-scale 1 \
--tts-steps 32 \
--port 7981
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Voir Client Hugging Face
# hf download cstr/qwen3-tts-0.6b-base-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/tts/qwen3-tts-0.6b-base-GGUF/q8_0 # hf download cstr/qwen3-tts-tokenizer-12hz-GGUF --include "qwen3-tts-tokenizer-12hz.gguf" --local-dir /opt/models/tts/qwen3-tts-0.6b-base-GGUF/q8_0
# vi /etc/systemd/system/crispasr-tts.service
[Unit]
Description=CrispASR Text-to-Speech Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/CrispASR
Environment="CRISPASR_API_KEYS=masuperclef"
ExecStart=/opt/CrispASR/build/bin/crispasr \
--server \
--backend qwen3-tts \
-m /opt/models/tts/qwen3-tts-0.6b-base-GGUF/q8_0/qwen3-tts-12hz-0.6b-base-q8_0.gguf \
--codec-model /opt/models/tts/qwen3-tts-0.6b-base-GGUF/q8_0/qwen3-tts-tokenizer-12hz.gguf \
--voice-dir /opt/voices \
--i-have-rights \
--language fr \
--host 0.0.0.0 \
--tts-pad-silence-ms 200 \
--tts-cfg-scale 1 \
--tts-steps 32 \
--port 7981
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Voir Client Hugging Face
# hf download cstr/chatterbox-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/tts/chatterbox-GGUF/q8_0
- Installer des voix :
# mkdir /opt/voices
Fichier .wav avec un nom de personnalité dans le dossier /opt/voices
Optionnellement on joint le fichier de la transcription exacte de l’enregistrement, exemple :
# vi /opt/voices/henriette.txt
bla bla bla
GGUF : :
cd /opt/CrispASR python3 -m venv .venv-chatterbox source .venv-chatterbox/bin/activate pip install --upgrade pip pip install numpy source /opt/CrispASR/.venv-chatterbox/bin/activate pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu128 pip install chatterbox-tts pip install gguf
# python models/bake-chatterbox-voice-from-wav.py --input /opt/voices/henriette.wav --output /opt/voices/henriette.gguf
# vi /etc/systemd/system/crispasr-tts.service
[Unit]
Description=CrispASR Text-to-Speech Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/CrispASR
ExecStart=/opt/CrispASR/build/bin/crispasr \
--server \
--backend chatterbox \
-m /opt/models/tts/chatterbox-GGUF/q8_0/chatterbox-t3-q8_0.gguf \
--codec-model /opt/models/tts/chatterbox-GGUF/q8_0/chatterbox-s3gen-q8_0.gguf \
--voice-dir /opt/voices \
--i-have-rights \
--language fr \
--host 0.0.0.0 \
--port 7981
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Voir Client Hugging Face
# hf download cstr/omnivoice-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/tts/omnivoice-GGUF/q8_0
# vi /etc/systemd/system/crispasr-tts.service
[Unit]
Description=CrispASR Text-to-Speech Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/CrispASR
ExecStart=/opt/CrispASR/build/bin/crispasr \
--server \
--backend omnivoice \
-m /opt/models/tts/omnivoice-GGUF/q8_0/omnivoice-q8_0.gguf \
--codec-model /opt/models/tts/omnivoice-GGUF/q8_0/omnivoice-tokenizer-q8_0.gguf \
--voice-dir /opt/voices \
--i-have-rights \
--language fr \
--host 0.0.0.0 \
--port 7981
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target