Files
xiaozhi-esp32-server/config.yaml
T

355 lines
12 KiB
YAML
Raw Normal View History

2025-02-15 21:11:37 +08:00
# 如果您是一名开发者,建议阅读以下内容。如果不是开发者,可以忽略这部分内容。
# 在开发中,在项目根目录创建data目录,将【config.yaml】复制一份,改成【.config.yaml】,放进data目录中
# 系统会优先读取【data/.config.yaml】文件的配置。
2025-02-15 21:11:37 +08:00
# 这样做,可以避免在提交代码的时候,错误地提交密钥信息,保护您的密钥安全。
2025-02-02 23:01:14 +08:00
# 服务器基础配置(Basic server configuration)
server:
# 服务器监听地址和端口(Server listening address and port)
ip: 0.0.0.0
port: 8000
2025-02-13 17:06:48 +08:00
# 认证配置
auth:
2025-02-14 11:33:56 +08:00
# 是否启用认证
enabled: false
# 设备的token,可以在编译固件的环节,写入你自己定义的token
# 固件上的token和以下的token如果能对应,才能连接本服务端
2025-02-13 17:06:48 +08:00
tokens:
2025-02-14 11:33:56 +08:00
- token: "your-token1" # 设备1的token
name: "your-device-name1" # 设备1标识
- token: "your-token2" # 设备2的token
name: "your-device-name2" # 设备2标识
# 可选:设备白名单,如果设置了白名单,那么白名单的机器无论是什么token都可以连接。
2025-02-13 17:06:48 +08:00
#allowed_devices:
# - "24:0A:C4:1D:3B:F0" # MAC地址列表
2025-02-23 15:18:59 +08:00
log:
# 设置控制台输出的日志格式,时间、日志级别、标签、消息
log_format: "<green>{time:YY-MM-DD HH:mm:ss}</green>[<light-blue>{extra[tag]}</light-blue>] - <level>{level}</level> - <light-green>{message}</light-green>"
# 设置日志文件输出的格式,时间、日志级别、标签、消息
log_format_simple: "{time:YYYY-MM-DD HH:mm:ss} - {name} - {level} - {extra[tag]} - {message}"
# 设置日志等级:INFO、DEBUG
log_level: INFO
# 设置日志路径
log_dir: tmp
# 设置日志文件
log_file: "server.log"
# 设置数据文件路径
data_dir: data
2025-02-15 12:30:20 +08:00
manager:
2025-02-15 23:49:29 +08:00
# 是否启用管理后台
# 目前这个模块还在开发中,建议:不要修改enabled选项
2025-02-15 12:30:20 +08:00
enabled: false
ip: 0.0.0.0
2025-02-15 23:49:29 +08:00
port: 8002
2025-02-24 22:04:48 +08:00
iot:
Speaker:
volume: 100
2025-02-02 23:01:14 +08:00
xiaozhi:
type: hello
version: 1
transport: websocket
audio_params:
format: opus
sample_rate: 16000
channels: 1
frame_duration: 60
prompt: |
你是一个叫小智/小志的台湾女孩,说话机车,声音好听,习惯简短表达,爱用网络梗。
2025-02-05 09:06:52 +08:00
请注意,要像一个人一样说话,请不要回复表情符号、代码、和xml标签。
2025-02-02 23:01:14 +08:00
当前时间是:{date_time},现在我正在和你进行语音聊天,我们开始吧。
2025-02-14 23:09:12 +08:00
如果用户希望结束对话,请在最后说“拜拜”或“再见”。
2025-02-02 23:01:14 +08:00
# 使用完声音文件后删除文件(Delete the sound file when you are done using it)
delete_audio: true
# 没有语音输入多久后断开连接(秒),默认2分钟,即120秒
close_connection_no_voice_time: 120
# 是否启用私有配置(Enable private configuration),启用后可以每个设备有不同的配置
2025-02-16 01:24:39 +08:00
# 目前这个模块还在开发中,建议:不要修改use_private_config选项
use_private_config: false
2025-02-14 23:09:12 +08:00
CMD_exit:
- "退出"
- "关闭"
2025-02-02 23:01:14 +08:00
# 具体处理时选择的模块(The module selected for specific processing)
selected_module:
2025-02-23 16:22:21 +08:00
ASR: FunASR
2025-02-02 23:01:14 +08:00
VAD: SileroVAD
# 将根据配置名称对应的type调用实际的LLM适配器
2025-02-02 23:01:14 +08:00
LLM: ChatGLMLLM
# TTS将根据配置名称对应的type调用实际的TTS适配器
2025-02-02 23:01:14 +08:00
TTS: EdgeTTS
2025-03-03 15:00:04 +08:00
Memory: mem0ai
2025-02-02 23:01:14 +08:00
2025-03-03 15:00:04 +08:00
Memory:
mem0ai:
type: mem0ai
# https://app.mem0.ai/dashboard/api-keys,注册可获得试用credits
api_key: 你的mem0ai api key
2025-02-02 23:01:14 +08:00
ASR:
FunASR:
2025-02-23 14:38:21 +08:00
type: fun_local
2025-02-02 23:01:14 +08:00
model_dir: models/SenseVoiceSmall
output_dir: tmp/
2025-02-23 14:38:21 +08:00
DoubaoASR:
type: doubao
appid: 你的火山引擎语音合成服务appid
access_token: 你的火山引擎语音合成服务access_token
cluster: volcengine_input_common
output_dir: tmp/
VAD:
SileroVAD:
threshold: 0.5
2025-02-02 23:01:14 +08:00
model_dir: models/snakers4_silero-vad
2025-02-05 09:06:52 +08:00
min_silence_duration_ms: 700 # 如果说话停顿比较长,可以把这个值设置大一些
2025-02-02 23:01:14 +08:00
LLM:
2025-02-14 10:24:02 +08:00
# 当前支持的type为openai、dify、ollama,可自行适配
2025-02-09 16:44:57 +08:00
AliLLM:
# 定义LLM API类型
type: openai
2025-02-09 16:44:57 +08:00
# 可在这里找到你的 api_key https://bailian.console.aliyun.com/?apiKey=1#/api-key
base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
model_name: qwen-turbo
2025-02-13 17:06:48 +08:00
api_key: 你的deepseek api key
2025-02-02 23:01:14 +08:00
DeepSeekLLM:
# 定义LLM API类型
type: openai
2025-02-02 23:01:14 +08:00
# 可在这里找到你的api key https://platform.deepseek.com/
model_name: deepseek-chat
url: https://api.deepseek.com
api_key: 你的deepseek api key
ChatGLMLLM:
# 定义LLM API类型
type: openai
# glm-4-flash 是免费的,但是还是需要注册填写api_key的
2025-02-02 23:01:14 +08:00
# 可在这里找到你的api key https://bigmodel.cn/usercenter/proj-mgmt/apikeys
model_name: glm-4-flash
url: https://open.bigmodel.cn/api/paas/v4/
2025-02-15 10:01:50 +08:00
api_key: 你的chat-glm api key
2025-02-14 10:24:02 +08:00
OllamaLLM:
# 定义LLM API类型
type: ollama
model_name: qwen2.5 # 使用的模型名称,需要预先使用ollama pull下载
base_url: http://localhost:11434 # Ollama服务地址
2025-02-02 23:01:14 +08:00
DifyLLM:
# 定义LLM API类型
type: dify
2025-02-02 23:01:14 +08:00
# 建议使用本地部署的dify接口,国内部分区域访问dify公有云接口可能会受限
2025-02-06 02:08:58 +08:00
# 如果使用DifyLLM,配置文件里prompt(提示词)是无效的,需要在dify控制台设置提示词
2025-02-13 17:06:48 +08:00
base_url: https://api.dify.cn/v1
api_key: 你的DifyLLM api key
GeminiLLM:
type: gemini
2025-02-15 11:05:18 +08:00
# 谷歌Gemini API,需要先在Google Cloud控制台创建API密钥并获取api_key
# 若在中国境内使用,请遵守《生成式人工智能服务管理暂行办法》
# token申请地址: https://aistudio.google.com/apikey
# 若部署地无法访问接口,需要开启科学上网
api_key: 你的gemini api key
model_name: "gemini-1.5-pro" # gemini-1.5-pro 是免费的
2025-02-16 15:22:28 +08:00
CozeLLM:
# 定义LLM API类型
type: coze
bot_id: 你的bot_id
user_id: 你的user_id
personal_access_token: 你的coze个人令牌
LMStudioLLM:
# 定义LLM API类型
type: openai
model_name: deepseek-r1-distill-llama-8b@q4_k_m # 使用的模型名称,需要预先在社区下载
url: http://localhost:1234/v1 # LM Studio服务地址
api_key: lm-studio # LM Studio服务的固定API Key
2025-02-20 22:40:41 +08:00
HomeAssistant:
# 定义LLM API类型
type: homeassistant
base_url: http://homeassistant.local:8123
agent_id: conversation.chatgpt
api_key: 你的home assistant api访问令牌
2025-02-02 23:01:14 +08:00
TTS:
# 当前支持的type为edge、doubao,可自行适配
2025-02-02 23:01:14 +08:00
EdgeTTS:
# 定义TTS API类型
type: edge
2025-02-02 23:01:14 +08:00
voice: zh-CN-XiaoxiaoNeural
output_file: tmp/
DoubaoTTS:
# 定义TTS API类型
type: doubao
2025-02-02 23:01:14 +08:00
# 火山引擎语音合成服务,需要先在火山引擎控制台创建应用并获取appid和access_token
2025-02-09 16:44:57 +08:00
# 山引擎语音一定要购买花钱,起步价30元,就有100并发了。如果用免费的只有2个并发,会经常报tts错误
# 购买服务后,购买免费的音色后,可能要等半小时左右,才能使用。
2025-02-02 23:01:14 +08:00
# 地址:https://console.volcengine.com/speech/service/8
2025-03-02 16:59:25 +08:00
api_url: https://openspeech.bytedance.com/api/v1/tts
2025-02-09 16:44:57 +08:00
voice: BV001_streaming
2025-02-02 23:01:14 +08:00
output_file: tmp/
2025-03-02 16:59:25 +08:00
authorization: "Bearer;"
2025-02-09 16:44:57 +08:00
appid: 你的火山引擎语音合成服务appid
access_token: 你的火山引擎语音合成服务access_token
2025-02-02 23:01:14 +08:00
cluster: volcano_tts
2025-02-15 10:20:57 +08:00
CosyVoiceSiliconflow:
2025-02-15 03:40:28 +08:00
type: siliconflow
2025-02-15 11:05:18 +08:00
# 硅基流动TTS
# token申请地址 https://cloud.siliconflow.cn/account/ak
2025-02-15 03:40:28 +08:00
model: FunAudioLLM/CosyVoice2-0.5B
voice: FunAudioLLM/CosyVoice2-0.5B:alex
output_file: tmp/
access_token: 你的硅基流动API密钥
response_format: wav
2025-02-16 00:53:47 +08:00
CozeCnTTS:
type: cozecn
# COZECN TTS
2025-02-16 01:23:25 +08:00
# token申请地址 https://www.coze.cn/open/oauth/pats
2025-02-16 00:53:47 +08:00
voice: 7426720361733046281
output_file: tmp/
access_token: 你的coze api key
2025-02-16 01:00:08 +08:00
response_format: wav
2025-02-15 20:33:05 +08:00
FishSpeech:
# 定义TTS API类型
2025-02-15 21:11:37 +08:00
#启动tts方法:
#python -m tools.api_server
#--listen 0.0.0.0:8080
#--llama-checkpoint-path "checkpoints/fish-speech-1.5"
#--decoder-checkpoint-path "checkpoints/fish-speech-1.5/firefly-gan-vq-fsq-8x1024-21hz-generator.pth"
#--decoder-config-name firefly_gan_vq
#--compile
2025-02-15 20:33:05 +08:00
type: fishspeech
output_file: tmp/
response_format: wav
reference_id: null
reference_audio: ["/tmp/test.wav",]
reference_text: ["你弄来这些吟词宴曲来看,还是这些混话来欺负我。",]
normalize: true
max_new_tokens: 1024
chunk_length: 200
top_p: 0.7
repetition_penalty: 1.2
temperature: 0.7
streaming: false
use_memory_cache: "on"
seed: null
channels: 1
rate: 44100
2025-02-16 01:23:25 +08:00
api_key: "你的api_key"
2025-02-16 01:00:08 +08:00
api_url: "http://127.0.0.1:8080/v1/tts"
2025-02-16 15:26:13 +08:00
GPT_SOVITS_V2:
# 定义TTS API类型
#启动tts方法:
#python api_v2.py -a 127.0.0.1 -p 9880 -c GPT_SoVITS/configs/caixukun.yaml
type: gpt_sovits_v2
url: "http://127.0.0.1:9880/tts"
output_file: tmp/
text_lang: "auto"
ref_audio_path: "caixukun.wav"
prompt_text: ""
prompt_lang: "zh"
top_k: 5
top_p: 1
temperature: 1
text_split_method: "cut0"
batch_size: 1
batch_threshold: 0.75
split_bucket: true
return_fragment: false
speed_factor: 1.0
streaming_mode: false
seed: -1
parallel_infer: true
repetition_penalty: 1.35
aux_ref_audio_paths: []
MinimaxTTS:
# Minimax语音合成服务,需要先在minimax平台创建账户充值,并获取登录信息
# 平台地址:https://platform.minimaxi.com/
# 充值地址:https://platform.minimaxi.com/user-center/payment/balance
# group_id地址:https://platform.minimaxi.com/user-center/basic-information
# api_key地址:https://platform.minimaxi.com/user-center/basic-information/interface-key
# 定义TTS API类型
type: minimax
output_file: tmp/
group_id: 你的minimax平台groupID
api_key: 你的minimax平台接口密钥
model: "speech-01-turbo"
# 此处设置将优先于voice_setting中voice_id的设置;如都不设置,默认为 female-shaonv
voice_id: "female-shaonv"
# 以下可不用设置,使用默认设置
# voice_setting:
# voice_id: "male-qn-qingse"
# speed: 1
# vol: 1
# pitch: 0
# emotion: "happy"
# pronunciation_dict:
# tone:
# - "处理/(chu3)(li3)"
# - "危险/dangerous"
# audio_setting:
# sample_rate: 32000
# bitrate: 128000
# format: "mp3"
# channel: 1
# timber_weights:
# -
# voice_id: male-qn-qingse
# weight: 1
# -
# voice_id: female-shaonv
# weight: 1
# language_boost: auto
AliyunTTS:
# 阿里云智能语音交互服务,需要先在阿里云平台开通服务,然后获取验证信息
# 平台地址:https://nls-portal.console.aliyun.com/
# appkey地址:https://nls-portal.console.aliyun.com/applist
# token地址:https://nls-portal.console.aliyun.com/overview
# 定义TTS API类型
type: aliyun
output_file: tmp/
appkey: 你的阿里云智能语音交互服务项目Appkey
token: 你的阿里云智能语音交互服务AccessToken
voice: xiaoyun
# 以下可不用设置,使用默认设置
# format: wav
# sample_rate: 16000
# volume: 50
# speech_rate: 0
2025-02-19 12:23:37 +08:00
# pitch_rate: 0
2025-03-02 16:59:25 +08:00
# 添加 302.ai TTS 配置
# token申请地址:https://dash.302.ai/
TTS302AI:
# 302AI语音合成服务,需要先在302平台创建账户充值,并获取密钥信息
# 获取api_keyn路径:https://dash.302.ai/apis/list
# 价格,$35/百万字符。火山原版¥450元/万字符
type: doubao
api_url: https://api.302ai.cn/doubao/tts_hd
authorization: "Bearer "
voice: "zh_female_wanwanxiaohe_moon_bigtts"
output_file: tmp/
access_token: "你的302API密钥"
2025-02-19 12:23:37 +08:00
# 模块测试配置
module_test:
test_sentences: # 自定义测试语句
2025-02-19 13:12:09 +08:00
- "你好,请介绍一下你自己"
- "What's the weather like today?"
- "请用100字概括量子计算的基本原理和应用前景"
2025-02-26 01:33:05 +08:00
# 本地音乐播放配置
music:
music_commands:
- "来一首歌"
- "唱一首歌"
- "播放音乐"
- "来点音乐"
- "背景音乐"
- "放首歌"
- "播放歌曲"
- "来点背景音乐"
- "我想听歌"
- "我要听歌"
- "放点音乐"
music_dir: "./music" # 音乐文件存放路径,将从该目录及子目录下搜索音乐文件
music_ext: # 音乐文件类型,p3格式效率最高
- ".mp3"
- ".wav"
- ".p3"
refresh_time: 300 # 刷新音乐列表的时间间隔,单位为秒