Text-to-Speech
Transformers
ONNX
GGUF
Chinese
English
voice-dialogue
speech-recognition
large-language-model
asr
tts
llm
chinese
english
real-time
conversational
Instructions to use MoYoYoTech/VoiceDialogue with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use MoYoYoTech/VoiceDialogue with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-to-speech", model="MoYoYoTech/VoiceDialogue")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("MoYoYoTech/VoiceDialogue", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use MoYoYoTech/VoiceDialogue with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf MoYoYoTech/VoiceDialogue:Q6_K # Run inference directly in the terminal: llama cli -hf MoYoYoTech/VoiceDialogue:Q6_K
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf MoYoYoTech/VoiceDialogue:Q6_K # Run inference directly in the terminal: llama cli -hf MoYoYoTech/VoiceDialogue:Q6_K
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf MoYoYoTech/VoiceDialogue:Q6_K # Run inference directly in the terminal: ./build/bin/llama cli -hf MoYoYoTech/VoiceDialogue:Q6_K
Use Docker
docker model run hf.co/MoYoYoTech/VoiceDialogue:Q6_K
- Llama new
- LM Studio
- Jan
- Ollama
How to use MoYoYoTech/VoiceDialogue with Ollama:
ollama run hf.co/MoYoYoTech/VoiceDialogue:Q6_K
- Unsloth Desktop
- Pi
How to use MoYoYoTech/VoiceDialogue with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf MoYoYoTech/VoiceDialogue:Q6_K
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "MoYoYoTech/VoiceDialogue:Q6_K" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use MoYoYoTech/VoiceDialogue with Docker Model Runner:
docker model run hf.co/MoYoYoTech/VoiceDialogue:Q6_K
- Lemonade
How to use MoYoYoTech/VoiceDialogue with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull MoYoYoTech/VoiceDialogue:Q6_K
Run and chat with the model
lemonade run user.VoiceDialogue-Q6_K
List all available models
lemonade list
- Hermes Agent
How to use MoYoYoTech/VoiceDialogue with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf MoYoYoTech/VoiceDialogue:Q6_K
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default MoYoYoTech/VoiceDialogue:Q6_K
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use MoYoYoTech/VoiceDialogue with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf MoYoYoTech/VoiceDialogue:Q6_K
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "MoYoYoTech/VoiceDialogue:Q6_K" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Commit History
-
增强性能日志记录功能,新增用户问题日志记录方法
liumaolin- 在`PerformanceLogMixin`中添加`log_task_user_question`方法,用于记录用户提问的音频。 - 在`ASRWorker`类中集成该方法,以便在处理语音任务时记录用户问题。 - 移除`AudioStreamPlayer`类中的调试模式检查,确保性能日志始终记录音频播放任务。7cddb77 -
Revise `ACTIVE_FRAME_THRESHOLD` from 0.32s to 0.1s
liumaolind662661
-
更新MoYoYo语音模型配置,修改文本分割方法并新增角色模型
liumaolin- 将多个角色的`text_split_method`从"cut3"修改为"cut0",以优化文本处理。 - 调整部分角色的优先级,以确保正确排序。46eb532 -
更新MoYoYo语音模型配置,新增优先级字段
liumaolin- 在`moyoyo.py`中为多个角色模型添加`priority`字段,以便于根据优先级进行排序。 - 修改`TTSConfigRegistry`类中的排序逻辑,确保根据角色优先级进行正确排序。 - 更新`MoYoYoTTSConfig`类,添加优先级属性以支持新功能。efefd3d -
新增Mixin类以增强语音任务处理功能
liumaolin- 添加`TaskStatusMixin`、`HistoryMixin`和`PerformanceLogMixin`类,提供语音任务状态检查、聊天历史更新和性能日志记录功能。 - 在`TTSAudioGenerator`和`AudioStreamPlayer`类中集成新混入类,优化任务处理逻辑。 - 更新`utils.py`,新增音频帧归一化和时长计算功能。2ebe57f -
添加MoYoYo语音模型“白岩松”及相关文件
liumaolin- 新增GPT权重文件`bys_best_gpt.ckpt`、SoVITS权重文件`bys_best_sovits.pth`和参考音频文件`bys_ref.wav`。 - 更新`moyoyo.py`配置,包含新模型的文件路径和推理参数设置。d74bcbf
-
重构`is_task_interrupted`方法以检查语音任务中断状态
liumaolin- 添加`is_task_interrupted`方法,简化语音任务中断检查逻辑,提高代码可读性。 - 更新相关逻辑以使用新方法替代原有的中断检查方式。02c321c
-
Add `has_no_words` check to skip punctuation-only TTS tasks and enhance debug logs
liumaolin- Implement `has_no_words` method to detect and skip text containing only punctuation or symbols. - Log TTS generation process when `is_debug_mode` is enabled for easier debugging.b636027 -
Refactor SpeechMonitor to use active audio frame duration instead of count
liumaolin- Replace `active_audio_frame_count` with `active_audio_frame_duration` for more precise threshold control. - Adjust `ACTIVE_FRAME_THRESHOLD` and associated calculations to use duration-based logic.15891ec -
Add TTS generation error handling and `is_task_interrupted` helper function
liumaolin- Log errors during TTS audio generation to improve debugging. - Abstract task interruption check into `is_task_interrupted` method for better readability and reuse.5ecb408 -
Optimize VAD logic by replacing `np.max(probs)` with `any(prob >= threshold)` for improved readability and efficiency.
liumaolin9273b76
-
Increase audio capture chunk size to 1024 in `capture.py` for smoother streaming
liumaolin095cfb6 -
Remove `speech_monitor` dependency from `asr_worker` service definition.
liumaolin5cf0dbe -
Add echo cancellation and VAD toggle support in service factories and routes
liumaolin- Extend `create_audio_capture` and `create_speech_monitor` methods to include `enable_echo_cancellation` and `enable_vad` options. - Update service definitions and health checks to pass configuration dynamically. - Add `SystemStartRequest` schema to support echo cancellation toggle during system startup. - Adjust `_start_system_background` logic to initialize services based on the new toggles.2ecfa8f
-
Fix help text for `--disable-echo-cancellation` to clarify the default behavior is not disabled
liumaolind846f85 -
Refactor threading in `launcher.py` to standardize worker initialization, enforce daemon mode, and improve naming consistency.
liumaolin7d8046a -
Handle overflow errors in audio capture by adding `exception_on_overflow=False` and skip processing when no data is available.
liumaolin5f9eaee -
Add `--disable-echo-cancellation` CLI option and update audio pipeline to support toggling echo cancellation and VAD
liumaolin4e071d3 -
Integrate `SileroVAD` into `SpeechMonitor` for optional voice activity detection. Add `_detect_speech()` method and update queue handling logic. Implement `SileroVAD` as a singleton for efficient model management.
liumaolin4e2e3d8 -
Increase queue timeout in audio and text processing services for smoother task handling
liumaolinb446464 -
Refactor audio processing pipeline to normalize data in `SpeechMonitor` and streamline queuing in `AudioCapture`
liumaolin57b0084 -
Update `AudioCapture` to support both PyAudio and macOS native AEC+VAD libraries
liumaolin- Add PyAudio-based standard audio capture as an option. - Enable runtime switching between PyAudio and macOS native libraries based on echo cancellation settings. - Refactor capture methods for better modularity and maintainability.99e8988 -
Refactor to replace `EchoCancellingAudioCapture` with `AudioCapture` across the codebase for improved clarity and flexibility
liumaolin7437d6d
-
Clean input text in MoYoYo TTS by removing punctuation for better processing
liumaolin8587958 -
Refactor LlamaCpp initialization to simplify parameter handling and remove unused callback manager
liumaolin941bf07 -
Enable debug mode with global configuration and detailed task logging when active
liumaoline0f42b2
-
Reset task ID in speech recognizer for empty transcriptions to prevent errors
liumaolin2291ed2 -
Add new voice model "Doubao" to MoYoYo configuration
liumaolin- Include model details, inference parameters, and related files. - Add reference audio and pretrained weights for TTS.7b003c4
-
Update performance logging format in TTS player for improved structure and readability
liumaolind0c1c61 -
Enhance launcher startup log formatting for improved readability and visual appeal
liumaolinfa296dd -
Remove commented-out performance logging code from TTS player
liumaolinc3e85a2
-
Add new voice model "Ellen" to MoYoYo configuration
liumaolin- Include model details, inference parameters, and related files. - Add reference audio and pretrained weights for TTS.b5b48f0
-
Update MoYoYo TTS prompt text for improved relevance and clarity
liumaolin8228973 -
Improve speech recognizer to handle empty transcriptions
liumaolin0cbda14 -
Simplify system prompts for text generation in Chinese and English
liumaolin- Remove unnecessary "thinking process" phrases to streamline responses. - Adjust prompt guidelines for improved brevity, accuracy, and conversational flow.c545fd9 -
Add new voice model "Juniper" to MoYoYo configuration
liumaolin- Include model details, inference parameters, and related files. - Add reference audio and pretrained weights for TTS.469433f
-
Standardize punctuation for system prompts in both Chinese and English text generation modules.
liumaolinbedd7b8 -
Enhance WebSocket handling for connection management and reliability
liumaolin- Add message broadcasting support to `WebSocketConnectionManager`. - Improve connection cleanup for disconnected clients. - Refine WebSocket endpoint to handle client disconnects and queue tasks more gracefully.b115e26 -
Add session validation checks to `player.py` and `generator.py`
liumaolin- Ensure voice tasks are processed only for the current session by comparing `session_id`. - Break or skip processing if the session ID mismatches.29766c6 -
Refactor WebSocket handling with connection manager
liumaolin- Introduce `WebSocketConnectionManager` for centralized connection tracking and session management. - Add support for session-specific connection handling and message broadcasting. - Implement `websocket_connection_context` to streamline connection lifecycle management. - Update WebSocket endpoint to utilize the connection manager for improved reliability and efficiency.300d567
-
Replace `logging` with centralized `loguru`-based logger across all modules.
liumaolin851495c -
Refactor response generation logic in `generator.py`
liumaolin- Adjust sentence length evaluation for end mark conditions. - Update chunk filtering to handle `<think>` and newline tags consistently. - Fix inconsistency in sentence preprocessing with remaining content handling. - Clean up unnecessary whitespace in method definitions.ce3d9e5 -
Remove unused conditional logic for second answer handling in `player.py` and `generator.py`
liumaolinc1b24fd -
Adjust context window allocation logic based on memory tiers in `apple_silicon.py`
liumaolinfd3c30a
-
Comment out unused Kokoro TTS voice configurations
liumaolin23c146f -
Add Maple and Cove voice models to MoYoYo TTS configuration
liumaolin- Introduce two new voice models: Maple (轻松坦率) and Cove (沉稳直率). - Configure model repositories, parameters, and corresponding inference settings. - Add associated model files, including GPT weights, SoVITS weights, and reference audios.7e92ad3 -
Introduce Apple Silicon hardware optimization and dynamic LLM configuration
liumaolin- Add `llm_config.py` to manage LLM model parameters dynamically via Apple Silicon detection. - Implement `apple_silicon.py` utility to retrieve and summarize hardware specifications. - Refactor `generator.py` to leverage dynamic parameter fetching and optimize threading for performance cores. - Enhance `system.py` with `is_apple_silicon` check and augment system info output.bdc3b7b
-
Update LLM response generator and system prompts
liumaolin- Add "/no_think" directive to English and Chinese system prompts. - Handle `<think>` and `</think>` tags in response chunk processing. - Update LLM model file to `Qwen3-8B-Q6_K.gguf`. - Adjust model parameters: increase context length, modify temperature, top_p, and top_k, and include `presence_penalty`.6f77a29
-
Update static file routing and root endpoint for frontend integration
liumaolin- Change static file mount point to `/app` with HTML support. - Replace root endpoint's `FileResponse` with `RedirectResponse` to `/app/`. - Update server availability check URL in Electron app to align with new routing.f7b034a
-
Add robust lifecycle management for `audio_player` service in system routes
liumaolin- Implement `stop` and `resume` functionality for `audio_player` with timeout handling. - Add readiness checks and informative logging to ensure service stability during start and stop operations. - Allow system continuation even if `audio_player` encounters errors or is unavailable.627c3e7