« CrispASR » : différence entre les versions
De Le Wiki de Lug
Autres actions
| (15 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 44 : | Ligne 44 : | ||
Type=simple | Type=simple | ||
WorkingDirectory=/opt/CrispASR | WorkingDirectory=/opt/CrispASR | ||
Environment="CRISPASR_API_KEYS=<font color = blue>masuperclef</font>" | |||
ExecStart=/opt/CrispASR/build/bin/crispasr \ | ExecStart=/opt/CrispASR/build/bin/crispasr \ | ||
--server \ | --server \ | ||
| Ligne 61 : | Ligne 62 : | ||
| texte = | | texte = | ||
Parakeet est suffisamment léger pour fonctionner correctement sur CPU avec l’option <code>-ng</code>. Il est également possible de définir le nombre de threads CPU utilisés avec l’option <code>-t <font color="blue">N</font></code> ; la valeur par défaut est de 4. | Parakeet est suffisamment léger pour fonctionner correctement sur CPU avec l’option <code>-ng</code>. Il est également possible de définir le nombre de threads CPU utilisés avec l’option <code>-t <font color="blue">N</font></code> ; la valeur par défaut est de 4. | ||
}} | |||
{{Méta bandeau | |||
| niveau = modéré | |||
| icône = important | |||
| texte = | |||
La variable <code>Environment="CRISPASR_API_KEYS=<font color = blue>masuperclef</font>"</code> est facultative. Elle permet d’activer l’authentification par clé API sur le serveur CrispASR. Pour une utilisation avec Hermes, la valeur configurée ici doit être strictement identique à celle définie dans <code>VOICE_TOOLS_OPENAI_KEY</code>. | |||
}} | }} | ||
==== Text-to-Speech ==== | ==== Text-to-Speech ==== | ||
===== [https://huggingface.co/cstr/qwen3-tts-0.6b-base-GGUF Qwen3-TTS-12Hz-0.6B-Base] ===== | |||
Voir [[Client_Hugging_Face|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=<font color = blue>masuperclef</font>" | |||
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 <font color="blue">fr</font> \ | |||
--host <font color="blue">0.0.0.0</font> \ | |||
--port <font color="blue">7981</font> | |||
Restart=on-failure | |||
RestartSec=5 | |||
[Install] | |||
WantedBy=multi-user.target | |||
{{Méta bandeau | |||
| niveau = information | |||
| icône = important | |||
| texte = | |||
Ce modèle est fourni sans voix. Il est donc nécessaire de placer un fichier WAV ainsi que sa transcription au format TXT dans le dossier <code>/opt/voices</code> (par exemple : <code>henriette.wav</code> et <code>henriette.txt</code>). | |||
}} | |||
{{Méta bandeau | |||
| niveau = modéré | |||
| icône = important | |||
| texte = | |||
La variable <code>Environment="CRISPASR_API_KEYS=<font color = blue>masuperclef</font>"</code> est facultative. Elle permet d’activer l’authentification par clé API sur le serveur CrispASR. Pour une utilisation avec Hermes, la valeur configurée ici doit être strictement identique à celle définie dans <code>VOICE_TOOLS_OPENAI_KEY</code>. | |||
}} | |||
===== [https://huggingface.co/cstr/chatterbox-GGUF Chatterbox] ===== | ===== [https://huggingface.co/cstr/chatterbox-GGUF Chatterbox] ===== | ||
{{Méta bandeau | |||
| niveau = grave | |||
| icône = important | |||
| texte = | |||
Informations vérifiées le 23/07/2026. La compatibilité avec CrispASR semble actuellement limitée. Le modèle est trop lourd pour une utilisation en temps réel avec un chatbot, mais offre une très bonne qualité audio. | |||
}} | |||
Voir [[Client_Hugging_Face|Client Hugging Face]] | Voir [[Client_Hugging_Face|Client Hugging Face]] | ||
# hf download cstr/chatterbox-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/tts/chatterbox-GGUF/q8_0 | # hf download cstr/chatterbox-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/tts/chatterbox-GGUF/q8_0 | ||
| Ligne 114 : | Ligne 170 : | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
===== [https://huggingface.co/cstr/omnivoice-GGUF OmniVoice] ===== | ===== [https://huggingface.co/cstr/omnivoice-GGUF OmniVoice] ===== | ||
{{Méta bandeau | |||
| niveau = grave | |||
| icône = important | |||
| texte = | |||
Informations vérifiées le 23/07/2026. Basé sur Qwen3-TTS, ce modèle offre des performances et une qualité similaires, mais ne semble pas capable de conserver une voix fixe, probablement en raison d’un bug. | |||
}} | |||
Voir [[Client_Hugging_Face|Client Hugging Face]] | Voir [[Client_Hugging_Face|Client Hugging Face]] | ||
# hf download cstr/omnivoice-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/tts/omnivoice-GGUF/q8_0 | # hf download cstr/omnivoice-GGUF --include "*q8_0*.gguf" --local-dir /opt/models/tts/omnivoice-GGUF/q8_0 | ||
| Ligne 142 : | Ligne 205 : | ||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
Dernière version du 2 août 2026 à 14:15
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 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 # 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_ALL_QUANTS=ON -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/.
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-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 \
--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