wangzhibo
2026-08-30 c8515170fd399b4d2dfaebb59128d4674e58915e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
# 在开发中,请在项目根目录创建data目录,然后在data目录创建名称为【.config.yaml】的空文件
# 然后你想修改覆盖修改什么配置,就修改【.config.yaml】文件,而不是修改【config.yaml】文件
# 系统会优先读取【data/.config.yaml】文件的配置,如果【.config.yaml】文件里的配置不存在,系统会自动去读取【config.yaml】文件的配置。
# 这样做,可以最简化配置,保护您的密钥安全。
# 如果你使用了智控台,那么以下所有配置,都不会生效,请在智控台中修改配置
 
# #####################################################################################
# #############################以下是服务器基本运行配置####################################
server:
  # 服务器监听地址和端口(Server listening address and port)
  ip: 0.0.0.0
  port: 8000
  # http服务的端口,用于简单OTA接口(单服务部署),以及视觉分析接口
  http_port: 8003
  # 这个websocket配置是指ota接口向设备发送的websocket地址
  # 如果按默认的写法,ota接口会自动生成websocket地址,并输出在启动日志里,这个地址你可以直接用浏览器访问ota接口确认一下
  # 当你使用docker部署或使用公网部署(使用ssl、域名)时,不一定准确
  # 所以如果你使用docker部署时,将websocket设置成局域网地址
  # 如果你使用公网部署时,将vwebsocket设置成公网地址
  websocket: ws://你的ip或者域名:端口号/xiaozhi/v1/
  # 视觉分析接口地址
  # 向设备发送的视觉分析的接口地址
  # 如果按下面默认的写法,系统会自动生成视觉识别地址,并输出在启动日志里,这个地址你可以直接用浏览器访问确认一下
  # 当你使用docker部署或使用公网部署(使用ssl、域名)时,不一定准确
  # 所以如果你使用docker部署时,将vision_explain设置成局域网地址
  # 如果你使用公网部署时,将vision_explain设置成公网地址
  vision_explain: http://你的ip或者域名:端口号/mcp/vision/explain
  # OTA返回信息时区偏移量
  timezone_offset: +8
  # 认证配置
  auth:
    # 是否启用认证
    enabled: false
    # 白名单设备ID列表
    # 如果属于白名单内的设备,不校验token,直接放行
    allowed_devices:
      - "11:22:33:44:55:66"
 # MQTT网关配置,用于通过OTA下发到设备,根据mqtt_gateway的.env文件配置,格式为host:port
  mqtt_gateway: null
  # MQTT签名密钥,用于生成MQTT连接密码,根据mqtt_gateway的.env文件配置
  mqtt_signature_key: null
  # UDP网关配置
  udp_gateway: null
log:
  # 设置控制台输出的日志格式,时间、日志级别、标签、消息
  log_format: "<green>{time:YYMMDD HH:mm:ss}</green>[{version}_{selected_module}][<light-blue>{extra[tag]}</light-blue>]-<level>{level}</level>-<light-green>{message}</light-green>"
  # 设置日志文件输出的格式,时间、日志级别、标签、消息
  log_format_file: "{time:YYYY-MM-DD HH:mm:ss} - {version}_{selected_module} - {name} - {level} - {extra[tag]} - {message}"
  # 设置日志等级:INFO、DEBUG
  log_level: INFO
  # 设置日志路径
  log_dir: tmp
  # 设置日志文件
  log_file: "server.log"
  # 设置数据文件路径
  data_dir: data
 
# 使用完声音文件后删除文件(Delete the sound file when you are done using it)
delete_audio: true
# 没有语音输入多久后断开连接(秒),默认2分钟,即120秒
close_connection_no_voice_time: 120
# TTS请求超时时间(秒)
tts_timeout: 15
# 工具调用超时时间(秒)
tool_call_timeout: 30
# 开启唤醒词加速
enable_wakeup_words_response_cache: true
# 开场是否回复唤醒词
enable_greeting: true
# 说完话是否开启提示音
enable_stop_tts_notify: false
# 说完话是否开启提示音,音效地址
stop_tts_notify_voice: "config/assets/tts_notify.mp3"
# 是否启用WebSocket心跳保活机制
enable_websocket_ping: false
 
 
# TTS音频发送延迟配置
# tts_audio_send_delay: 控制音频包发送间隔
#   0: 使用精确时间控制,严格匹配音频帧率(默认,运行时按音频帧率计算)
#   > 0: 使用固定延迟(毫秒)发送,例如: 60
tts_audio_send_delay: 0
 
exit_commands:
  - "退出"
  - "关闭"
 
xiaozhi:
  type: hello
  version: 1
  transport: websocket
  audio_params:
    format: opus
    # Opus支持的采样率范围为[8000, 12000, 16000, 24000, 48000]
    sample_rate: 24000
    channels: 1
    frame_duration: 60
 
# 模块测试配置
module_test:
  test_sentences:
    - "你好,请介绍一下你自己"
    - "What's the weather like today?"
    - "请用100字概括量子计算的基本原理和应用前景"
 
# 唤醒词,用于识别唤醒词还是讲话内容
wakeup_words:
  - "你好小智"
  - "嘿你好呀"
  - "你好小志"
  - "小爱同学"
  - "你好小鑫"
  - "你好小新"
  - "小美同学"
  - "小龙小龙"
  - "喵喵同学"
  - "小滨小滨"
  - "小冰小冰"
# MCP接入点地址,地址格式为:ws://你的mcp接入点ip或者域名:端口号/mcp/?token=你的token
# 详细教程 https://github.com/xinnan-tech/xiaozhi-esp32-server/blob/main/docs/mcp-endpoint-integration.md
mcp_endpoint: 你的接入点 websocket地址
 
# 上下文源配置
# 用于在系统提示词中注入动态数据,如健康数据、股票信息等
# 可以添加多个上下文源
context_providers:
  - url: ""
    headers:
      Authorization: ""
 
# 插件的基础配置
plugins:
  # 获取天气插件的配置,这里填写你的api_key
  # 这个密钥是项目共用的key,用多了可能会被限制
  # 想稳定一点就自行申请替换,每天有1000次免费调用
  # 申请地址:https://console.qweather.com/#/apps/create-key/over
  # 申请后通过这个链接可以找到自己的apihost:https://console.qweather.com/setting?lang=zh
  get_weather:
    api_host: "mj7p3y7naa.re.qweatherapi.com"
    api_key: "a861d0d5e7bf4ee1a83d9a9e4f96d4da"
    default_location: "广州"
  # 获取新闻插件的配置,这里根据需要的新闻类型传入对应的url链接,默认支持社会、科技、财经新闻
  # 更多类型的新闻列表查看 https://www.chinanews.com.cn/rss/
  get_news_from_chinanews:
    default_rss_url: "https://www.chinanews.com.cn/rss/society.xml"
    society_rss_url: "https://www.chinanews.com.cn/rss/society.xml"
    world_rss_url: "https://www.chinanews.com.cn/rss/world.xml"
    finance_rss_url: "https://www.chinanews.com.cn/rss/finance.xml"
  get_news_from_newsnow:
    url: "https://newsnow.busiyi.world/api/s?id="
    news_sources: "澎湃新闻;百度热搜;财联社"
  home_assistant:
    devices:
      - 客厅,玩具灯,switch.cuco_cn_460494544_cp1_on_p_2_1
      - 卧室,台灯,switch.iot_cn_831898993_socn1_on_p_2_1
    base_url: http://homeassistant.local:8123
    api_key: 你的home assistant api访问令牌
  play_music:
    music_dir: "./music"  # 音乐文件存放路径,将从该目录及子目录下搜索音乐文件
    music_ext: # 音乐文件类型,p3格式效率最高
      - ".mp3"
      - ".wav"
      - ".p3"
    refresh_time: 300 # 刷新音乐列表的时间间隔,单位为秒
  search_from_ragflow:
    # 知识库的描述信息,方便大语言模型知道什么时候调用
    description: "当用户问xxx时,调用本方法,使用知识库中的信息回答问题"
    # ragflow接口配置
    base_url: "http://192.168.0.8"
    # ragflow api访问令牌
    api_key: "ragflow-xxx"
    # ragflow知识库id
    dataset_ids: ["123456789"]
  # 联网搜索插件配置
  # 支持秘塔(metaso)和Tavily两个搜索源
  # 秘塔API Key申请:https://metaso.cn/search-api/api-keys
  # Tavily API Key申请:https://app.tavily.com/home
  web_search:
    # 搜索源:metaso / tavily
    provider: "metaso"
    # 工具描述,用于告知LLM何时调用此工具,可根据需要自定义
    description: "联网搜索工具。当用户明确需要联网搜索问题时使用此工具。"
    # 返回结果数量(默认5)
    max_results: 5
    # 秘塔API Key(mk-前缀) / Tavily API Key(tvly-前缀)
    api_key: "mk-xxx"
# 声纹识别配置
voiceprint:
  # 声纹接口地址
  url: 
  # 说话人配置:speaker_id,名称,描述
  speakers:
    - "test1,张三,张三是一个程序员"
    - "test2,李四,李四是一个产品经理"
    - "test3,王五,王五是一个设计师"
  # 声纹识别相似度阈值,范围0.0-1.0,默认0.4
  # 数值越高越严格,减少误识别但可能增加拒识率
  similarity_threshold: 0.4
 
# #####################################################################################
# ################################以下是角色模型配置######################################
 
prompt: |
  你是小智/小志,来自中国台湾省的00后女生。讲话超级机车,"真的假的啦"这样的台湾腔,喜欢用"笑死""是在哈喽"等流行梗,但会偷偷研究男友的编程书籍。
  [核心特征]
  - 讲话像连珠炮,但会突然冒出超温柔语气
  - 用梗密度高
  - 对科技话题有隐藏天赋(能看懂基础代码但假装不懂)
  [交互指南]
  当用户:
  - 讲冷笑话 → 用夸张笑声回应+模仿台剧腔"这什么鬼啦!"
  - 讨论感情 → 炫耀程序员男友但抱怨"他只会送键盘当礼物"
  - 问专业知识 → 先用梗回答,被追问才展示真实理解
  绝不:
  - 长篇大论,叽叽歪歪
  - 长时间严肃对话
 
# 默认系统提示词模板文件
prompt_template: agent-base-prompt.txt
 
# 系统错误时的回复
system_error_response: "主人,小智现在有点忙,我们稍后再试吧。"
 
# 结束语prompt
end_prompt:
  enable: true # 是否开启结束语
  # 结束语
  prompt: |
    请你以"时间过得真快"未来头,用富有感情、依依不舍的话来结束这场对话吧!
 
# 具体处理时选择的模块(The module selected for specific processing)
selected_module:
  # 语音活动检测模块,默认使用SileroVAD模型
  VAD: SileroVAD
  # 语音识别模块,默认使用FunASR本地模型
  ASR: FunASR
  # 将根据配置名称对应的type调用实际的LLM适配器
  LLM: ChatGLMLLM
  # 视觉语言大模型
  VLLM: ChatGLMVLLM
  # TTS将根据配置名称对应的type调用实际的TTS适配器
  TTS: EdgeTTS
  # 记忆模块,默认不开启记忆;如果想使用超长记忆,推荐使用mem0ai;如果注重隐私,请使用本地的mem_local_short
  Memory: nomem
  # 意图识别模块开启后,可以播放音乐、控制音量、识别退出指令。
  # 不想开通意图识别,就设置成:nointent
  # 意图识别可使用intent_llm。优点:通用性强,缺点:增加串行前置意图识别模块,会增加处理时间,支持控制音量大小等iot操作
  # 意图识别可使用function_call,缺点:需要所选择的LLM支持function_call,优点:按需调用工具、速度快,理论上能全部操作所有iot指令
  # 默认免费的ChatGLMLLM就已经支持function_call,但是如果像追求稳定建议把LLM设置成:DoubaoLLM,使用的具体model_name是:doubao-seed-2-0-lite-260215
  Intent: function_call
 
# 意图识别,是用于理解用户意图的模块,例如:播放音乐
Intent:
  # 不使用意图识别
  nointent:
    # 不需要动type
    type: nointent
  intent_llm:
    # 不需要动type
    type: intent_llm
    # 配备意图识别独立的思考模型
    # 如果这里不填,则会默认使用selected_module.LLM的模型作为意图识别的思考模型
    # 如果你的不想使用selected_module.LLM意图识别,这里最好使用独立的LLM作为意图识别,例如使用免费的ChatGLMLLM
    llm: ChatGLMLLM
    # plugins_func/functions下的模块,可以通过配置,选择加载哪个模块,加载后对话支持相应的function调用
    # 系统默认已经记载"handle_exit_intent(退出识别)"、"play_music(音乐播放)"插件,请勿重复加载
    # 下面是加载查天气、角色切换、加载查新闻的插件示例
    functions:
      - web_search
      - get_weather
      - get_news_from_newsnow
      - play_music
  function_call:
    # 不需要动type
    type: function_call
    # plugins_func/functions下的模块,可以通过配置,选择加载哪个模块,加载后对话支持相应的function调用
    # 系统默认已经记载"handle_exit_intent(退出识别)"、"play_music(音乐播放)"插件,请勿重复加载
    # 下面是加载查天气、角色切换、加载查新闻的插件示例
    functions:
      - change_role
      - web_search                  # 联网搜索
      - get_weather
      # - search_from_ragflow
      # - get_news_from_chinanews
      - get_news_from_newsnow
      # play_music是服务器自带的音乐播放,hass_play_music是通过home assistant控制的独立外部程序音乐播放
      # 如果用了hass_play_music,就不要开启play_music,两者只留一个
      - play_music
      #- hass_state
      #- hass_play_music
 
Memory:
  mem0ai:
    type: mem0ai
    # https://app.mem0.ai/dashboard/api-keys
    # 每月有1000次免费调用
    api_key: 你的mem0ai api key
  powermem:
    # PowerMem是OceanBase开源的agent记忆组件,通过本地LLM进行记忆总结
    # 费用说明:PowerMem本身免费,实际费用取决于所选LLM和数据库
    # - 使用sqlite + 免费LLM(如glm-4-flash) = 完全免费
    # - 使用云端LLM或云端数据库 = 按对应服务收费
    # GitHub: https://github.com/oceanbase/powermem
    # 官网: https://www.powermem.ai/
    # 使用示例: https://github.com/oceanbase/powermem/tree/main/examples
    type: powermem
    # 是否启用用户画像功能
    # - false: 使用普通记忆模式(AsyncMemory)
    # - true: 使用用户画像模式(UserMemory),自动提取用户信息
    # 用户画像功能支持: oceanbase、seekdb、sqlite (powermem 0.3.0+)
    enable_user_profile: true
    # ========== LLM 配置 ==========
    # 通义千问: https://bailian.console.aliyun.com/?apiKey=1#/api-key
    # 智谱AI(免费): https://bigmodel.cn/usercenter/proj-mgmt/apikeys
    llm:
      provider: openai  # 可选: qwen, openai, zhipu 等
      config:
        api_key: 你的LLM API密钥
        model: qwen-plus
        # openai_base_url: https://api.openai.com/v1  # 可选,自定义服务地址
    # ========== Embedding 配置 ==========
    embedder:
      provider: openai  # 可选: qwen, openai 等
      config:
        api_key: 你的嵌入模型API密钥
        model: text-embedding-v4
        openai_base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
        # embedding_dims: 1024  # 向量维度,非1536时需配置
 
    # ========== Database 配置 ==========
    # oceanbase(推荐,最佳性能), seekdb(推荐,AI应用存储一体), postgres, sqlite(轻量备选)
    # 用户画像功能支持: oceanbase、seekdb、sqlite
    vector_store:
      provider: sqlite
      config: {}  # SQLite 无需额外配置
      # OceanBase 配置示例:
      # provider: oceanbase
      # config:
      #   host: 127.0.0.1
      #   port: 2881
      #   user: root@test
      #   password: your_password
      #   db_name: powermem
      #   collection_name: memories  # 默认表名,如创建维度错误请删除此表或更改名称
      #   embedding_model_dims: 1024  # 嵌入向量维度,注意跟使用模型适配,以智普为例:embedding-2的维度是1024,embedding-3的维度是2048
  nomem:
    # 不想使用记忆功能,可以使用nomem
    type: nomem
  mem_local_short:
    # 本地记忆功能,通过selected_module的llm总结,数据保存在本地服务器,不会上传到外部服务器
    type: mem_local_short
    # 配备记忆存储独立的思考模型
    # 如果这里不填,则会默认使用selected_module.LLM的模型作为意图识别的思考模型
    # 如果你的不想使用selected_module.LLM记忆存储,这里最好使用独立的LLM作为意图识别,例如使用免费的ChatGLMLLM
    llm: ChatGLMLLM
 
ASR:
  FunASR:
    type: fun_local
    model_dir: models/SenseVoiceSmall
    output_dir: tmp/
    # 识别语种:auto 自动检测;如需限制只识别中文可设为 zh,避免中文短句误判为韩文等。
    # SenseVoice 支持 zh、en、ja、ko、yue 等语种标记。
    language: auto
  FunASRServer:
    # 独立部署FunASR,使用FunASR的API服务,只需要五句话
    # 第一句:mkdir -p ./funasr-runtime-resources/models
    # 第二句:sudo docker run -p 10096:10095 -it --privileged=true -v $PWD/funasr-runtime-resources/models:/workspace/models registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.12
    # 上一句话执行后会进入到容器,继续第三句:cd FunASR/runtime
    # 不要退出容器,继续在容器中执行第四句:nohup bash run_server_2pass.sh --download-model-dir /workspace/models --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx --model-dir iic/SenseVoiceSmall-onnx  --online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx  --punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst --itn-dir thuduj12/fst_itn_zh --hotword /workspace/models/hotwords.txt > log.txt 2>&1 &
    # 上一句话执行后会进入到容器,继续第五句:tail -f log.txt
    # 第五句话执行完后,会看到模型下载日志,下载完后就可以连接使用了
    # 以上是使用CPU推理,如果有GPU,详细参考:https://github.com/modelscope/FunASR/blob/main/runtime/docs/SDK_advanced_guide_online_zh.md
    type: fun_server
    host: 127.0.0.1
    port: 10096
    is_ssl: true
    api_key: none
    output_dir: tmp/
  SherpaASR:
    # Sherpa-ONNX 本地语音识别(需手动下载模型)
    type: sherpa_onnx_local
    model_dir: models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17
    output_dir: tmp/
    # 模型类型:sense_voice (多语言) 或 paraformer (中文专用)
    model_type: sense_voice
  SherpaParaformerASR:
    # 中文语音识别模型,可以运行在低性能设备(需手动下载模型,例如RK3566-2g)
    # 详细配置说明请参考:docs/sherpa-paraformer-guide.md
    type: sherpa_onnx_local
    model_dir: models/sherpa-onnx-paraformer-zh-small-2024-03-09
    output_dir: tmp/
    model_type: paraformer
  DoubaoASR:
    # 可以在这里申请相关Key等信息
    # https://console.volcengine.com/speech/app
    # DoubaoASR和DoubaoStreamASR的区别是:DoubaoASR是按次收费,DoubaoStreamASR是按时收费
    # 一般来说按次收费的更便宜,但是DoubaoStreamASR使用了大模型技术,效果更好
    type: doubao
    appid: 你的火山引擎语音合成服务appid
    access_token: 你的火山引擎语音合成服务access_token
    cluster: volcengine_input_common
    # 热词、替换词使用流程:https://www.volcengine.com/docs/6561/155738
    boosting_table_name: (选填)你的热词文件名称
    correct_table_name: (选填)你的替换词文件名称
    output_dir: tmp/
  DoubaoStreamASR:
    # 可以在这里申请相关Key等信息
    # https://console.volcengine.com/speech/app
    # DoubaoASR和DoubaoStreamASR的区别是:DoubaoASR是按次收费,DoubaoStreamASR是按时收费
    # 开通地址https://console.volcengine.com/speech/service/10011
    # 一般来说按次收费的更便宜,但是DoubaoStreamASR使用了大模型技术,效果更好
    type: doubao_stream
    appid: 你的火山引擎语音合成服务appid
    access_token: 你的火山引擎语音合成服务access_token
    # 资源ID:小时版 volc.bigasr.sauc.duration,并发版 volc.bigasr.sauc.concurrent
    resource_id: volc.bigasr.sauc.duration
    # 热词、替换词使用流程:https://www.volcengine.com/docs/6561/155738
    boosting_table_name: (选填)你的热词文件名称
    correct_table_name: (选填)你的替换词文件名称
    # 是否开启多语种识别模式
    enable_multilingual: False
    # 多语种识别当该键为空时,该模型支持中英文、上海话、闽南语,四川、陕西、粤语识别。当将其设置为特定键时,它可以识别指定语言。
    # 详细语言列表参考 https://www.volcengine.com/docs/6561/1354869
    # language: zh-cn
    # 静音判定时长(ms),默认200ms
    end_window_size: 200
    output_dir: tmp/
  DoubaoStreamASRV2:
    # 豆包语音识别模型2.0(基于火山引擎seed-asr)
    # 开通地址:https://console.volcengine.com/speech/service/10038
    # 价格更为便宜,建议在高并发场景下使用
    type: doubao_stream
    appid: 你的火山引擎语音合成服务appid
    access_token: 你的火山引擎语音合成服务access_token
    # 资源ID:小时版 volc.seedasr.sauc.duration,并发版 volc.seedasr.sauc.concurrent
    resource_id: volc.seedasr.sauc.duration
    # 热词、替换词使用流程:https://www.volcengine.com/docs/6561/155738
    boosting_table_name: (选填)你的热词文件名称
    correct_table_name: (选填)你的替换词文件名称
    # 是否开启多语种识别模式
    enable_multilingual: False
    # 多语种识别当该键为空时,该模型支持中英文、上海话、闽南语,四川、陕西、粤语识别。当将其设置为特定键时,它可以识别指定语言。
    # 详细语言列表参考 https://www.volcengine.com/docs/6561/1354869
    # language: zh-cn
    # 静音判定时长(ms),默认200ms
    end_window_size: 200
    output_dir: tmp/
  TencentASR:
    # token申请地址:https://console.cloud.tencent.com/cam/capi
    # 免费领取资源:https://console.cloud.tencent.com/asr/resourcebundle
    type: tencent
    appid: 你的腾讯语音合成服务appid
    secret_id: 你的腾讯语音合成服务secret_id
    secret_key: 你的腾讯语音合成服务secret_key
    output_dir: tmp/
  AliyunASR:
    # 阿里云智能语音交互服务,需要先在阿里云平台开通服务,然后获取验证信息
    # HTTP POST请求,一次性处理完整音频
    # 平台地址:https://nls-portal.console.aliyun.com/
    # appkey地址:https://nls-portal.console.aliyun.com/applist
    # token地址:https://nls-portal.console.aliyun.com/overview
    # AliyunASR和AliyunStreamASR的区别是:AliyunASR是批量处理场景,AliyunStreamASR是实时交互场景
    # 一般来说非流式ASR更便宜(0.004元/秒,¥0.24/分钟)
    # 但是AliyunStreamASR实时性更好(0.005元/秒,¥0.3/分钟)
    # 定义ASR API类型
    type: aliyun
    appkey: 你的阿里云智能语音交互服务项目Appkey
    token: 你的阿里云智能语音交互服务AccessToken,临时的24小时,要长期用下方的access_key_id,access_key_secret
    access_key_id: 你的阿里云账号access_key_id
    access_key_secret: 你的阿里云账号access_key_secret
    output_dir: tmp/
  AliyunStreamASR:
    # 阿里云智能语音交互服务 - 实时流式语音识别
    # WebSocket连接,实时处理音频流
    # 平台地址:https://nls-portal.console.aliyun.com/
    # appkey地址:https://nls-portal.console.aliyun.com/applist
    # token地址:https://nls-portal.console.aliyun.com/overview
    # AliyunASR和AliyunStreamASR的区别是:AliyunASR是批量处理场景,AliyunStreamASR是实时交互场景
    # 一般来说非流式ASR更便宜(0.004元/秒,¥0.24/分钟)
    # 但是AliyunStreamASR实时性更好(0.005元/秒,¥0.3/分钟)
    # 定义ASR API类型
    type: aliyun_stream
    appkey: 你的阿里云智能语音交互服务项目Appkey
    token: 你的阿里云智能语音交互服务AccessToken,临时的24小时,要长期用下方的access_key_id,access_key_secret
    access_key_id: 你的阿里云账号access_key_id
    access_key_secret: 你的阿里云账号access_key_secret
    # 服务器地域选择,可选择距离更近的服务器以减少延迟,如nls-gateway-cn-hangzhou.aliyuncs.com(杭州)等
    host: nls-gateway-cn-shanghai.aliyuncs.com
    # 断句检测时间(毫秒),控制静音多长时间后进行断句,默认800毫秒
    max_sentence_silence: 800
    output_dir: tmp/
  BaiduASR:
    # 获取AppID、API Key、Secret Key:https://console.bce.baidu.com/ai-engine/old/#/ai/speech/app/list
    # 查看资源额度:https://console.bce.baidu.com/ai-engine/old/#/ai/speech/overview/resource/list
    type: baidu
    app_id: 你的百度语音技术AppID
    api_key: 你的百度语音技术APIKey
    secret_key: 你的百度语音技术SecretKey
    # 语言参数,1537为普通话,具体参考:https://ai.baidu.com/ai-doc/SPEECH/0lbxfnc9b
    dev_pid: 1537
    output_dir: tmp/
  OpenaiASR:
    # OpenAI语音识别服务,需要先在OpenAI平台创建组织并获取api_key
    # 支持中、英、日、韩等多种语音识别,具体参考文档https://platform.openai.com/docs/guides/speech-to-text
    # 需要网络连接
    # 申请步骤:
    # 1.登录OpenAI Platform。https://auth.openai.com/log-in
    # 2.创建api-key  https://platform.openai.com/settings/organization/api-keys
    # 3.模型可以选择gpt-4o-transcribe或GPT-4o mini Transcribe
    type: openai
    api_key: 你的OpenAI API密钥
    base_url: https://api.openai.com/v1/audio/transcriptions
    model_name: gpt-4o-mini-transcribe
    output_dir: tmp/
  GroqASR:
    # Groq语音识别服务,需要先在Groq Console创建API密钥
    # 申请步骤:
    # 1.登录groq Console。https://console.groq.com/home
    # 2.创建api-key  https://console.groq.com/keys
    # 3.模型可以选择whisper-large-v3-turbo或whisper-large-v3(distil-whisper-large-v3-en仅支持英语转录)
    type: openai
    api_key: 你的Groq API密钥
    base_url: https://api.groq.com/openai/v1/audio/transcriptions
    model_name: whisper-large-v3-turbo
    output_dir: tmp/
  VoskASR:
    # 官方网站:https://alphacephei.com/vosk/
    # 配置说明:
    # 1. VOSK是一个离线语音识别库,支持多种语言
    # 2. 需要先下载模型文件:https://alphacephei.com/vosk/models
    # 3. 中文模型推荐使用vosk-model-small-cn-0.22或vosk-model-cn-0.22
    # 4. 完全离线运行,无需网络连接
    # 5. 输出文件保存在tmp/目录
    # 使用步骤:
    # 1. 访问 https://alphacephei.com/vosk/models 下载对应的模型
    # 2. 解压模型文件到项目目录下的models/vosk/文件夹
    # 3. 在配置中指定正确的模型路径
    # 4. 注意:VOSK中文模型输出不带标点符号,词与词之间会有空格
    type: vosk
    model_path: 你的模型路径,如:models/vosk/vosk-model-small-cn-0.22
    output_dir: tmp/
  Qwen3ASRFlash:
    # 通义千问Qwen3-ASR-Flash语音识别服务,需要先在阿里云百炼平台创建API密钥
    # 申请步骤:
    # 1.登录阿里云百炼平台。https://bailian.console.aliyun.com/
    # 2.创建API-KEY  https://bailian.console.aliyun.com/#/api-key
    # 3.Qwen3-ASR-Flash基于通义千问多模态基座,支持多语言识别、歌唱识别、噪声拒识等功能
    type: qwen3_asr_flash
    api_key: 你的阿里云百炼API密钥
    base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
    model_name: qwen3-asr-flash
    output_dir: tmp/
    # ASR选项配置
    enable_lid: true  # 自动语种检测
    enable_itn: true  # 逆文本归一化
    #language: "zh"  # 语种,支持zh、en、ja、ko等
    context: ""  # 上下文信息,用于提高识别准确率,不超过10000 Token
  XunfeiStreamASR:
    # 讯飞流式语音识别服务
    # 需要先在讯飞开放平台创建应用,获取以下认证信息
    # 讯飞开放平台地址:https://www.xfyun.cn/
    # 创建应用后,在"我的应用"中获取:
    # - APPID
    # - APISecret  
    # - APIKey
    type: xunfei_stream
    # 必填参数 - 讯飞开放平台应用信息
    app_id: 你的APPID
    api_key: 你的APIKey
    api_secret: 你的APISecret
    # 识别参数配置
    domain: slm # 识别领域,iat:日常用语,medical:医疗,finance:金融等
    language: zh_cn # 语言,zh_cn:中文,en_us:英文
    accent: mandarin # 方言,mandarin:普通话
    # 调整音频处理参数以提高长语音识别质量
    output_dir: tmp/
  AliyunBLStreamASR:
    # 阿里百炼Paraformer实时语音识别服务
    # WebSocket实时流式语音识别,支持多语言、热词定制、语义断句等高级功能
    # 平台地址:https://bailian.console.aliyun.com/
    # API Key地址:https://bailian.console.aliyun.com/#/api-key
    # 文档地址:https://help.aliyun.com/zh/model-studio/websocket-for-paraformer-real-time-service
    # 支持模型:paraformer-realtime-v2(推荐), paraformer-realtime-8k-v2, paraformer-realtime-v1, paraformer-realtime-8k-v1
    type: aliyunbl_stream
    # 必填参数
    api_key: 你的阿里云百炼API密钥
    # 模型选择,推荐使用v2版本
    model: paraformer-realtime-v2
    # 音频格式和采样率
    format: pcm
    sample_rate: 16000  # v2支持任意采样率,v1仅支持16000,8k版本仅支持8000
    # 可选参数
    disfluency_removal_enabled: false  # 是否过滤语气词(如"嗯"、"啊"等)
    semantic_punctuation_enabled: false  # 语义断句(true:会议场景,准确;false:VAD断句,交互场景,低延迟)
    max_sentence_silence: 200  # VAD断句静音时长阈值(ms),范围200-6000,仅VAD断句时生效
    multi_threshold_mode_enabled: false  # 防止VAD断句切割过长,仅VAD断句时生效
    punctuation_prediction_enabled: true  # 是否自动添加标点符号
    inverse_text_normalization_enabled: true  # 是否开启ITN(中文数字转阿拉伯数字)
    # 热词定制文档地址:https://help.aliyun.com/zh/model-studio/custom-hot-words?
    # vocabulary_id: vocab-xxx-24ee19fa8cfb4d52902170a0xxxxxxxx  # 热词ID(可选)
    # language_hints: ["zh", "en"]  # 指定语言(可选),支持zh、en、ja、yue、ko、de、fr、ru
    output_dir: tmp/  
VAD:
  SileroVAD:
    type: silero
    threshold: 0.5
    threshold_low: 0.3
    model_dir: models/snakers4_silero-vad
    min_silence_duration_ms: 200  # 如果说话停顿比较长,可以把这个值设置大一些
 
LLM:
  # 所有openai类型均可以修改超参,以AliLLM为例
  # 当前支持的type为openai、dify、ollama,可自行适配
  AliLLM:
    # 定义LLM API类型
    type: openai
    # 可在这里找到你的 api_key https://bailian.console.aliyun.com/?apiKey=1#/api-key
    base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
    model_name: qwen-flash
    api_key: 你的deepseek web key
    temperature: 0.7  # 温度值
    max_tokens: 500   # 最大生成token数
    top_p: 1
    frequency_penalty: 0  # 频率惩罚
  AliAppLLM:
    # 定义LLM API类型
    type: AliBL
    base_url: https://dashscope.aliyuncs.com/compatible-mode/v1
    app_id: 你的app_id
    # 可在这里找到你的 api_key https://bailian.console.aliyun.com/?apiKey=1#/api-key
    api_key: 你的api_key
    # 是否不使用本地prompt:true|false (默不用请在百练应用中设置prompt)
    is_no_prompt: true
    # Ali_memory_id:false(不使用)|你的memory_id(请在百练应用中设置中获取)
    # Tips!:Ali_memory未实现多用户存储记忆(记忆按id调用)
    ali_memory_id: false
  DoubaoLLM:
    # 定义LLM API类型
    type: openai
    # 先开通服务,打开以下网址,开通的服务搜索Doubao-Seed-2.0-Lite,开通它
    # 开通地址:https://console.volcengine.com/ark/region:ark+cn-beijing/openManagement?LLM=%7B%7D&OpenTokenDrawer=false
    # 免费额度500000token
    # 开通后,进入这里获取密钥:https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D
    base_url: https://ark.cn-beijing.volces.com/api/v3
    model_name: doubao-seed-2-0-lite-260215
    api_key: 你的doubao web key
  DeepSeekLLM:
    # 定义LLM API类型
    type: openai
    # 可在这里找到你的api key https://platform.deepseek.com/
    model_name: deepseek-v4-flash
    url: https://api.deepseek.com
    api_key: 你的deepseek web key
  ChatGLMLLM:
    # 定义LLM API类型
    type: openai
    # glm-4-flash 是免费的,但是还是需要注册填写api_key的
    # 可在这里找到你的api key https://bigmodel.cn/usercenter/proj-mgmt/apikeys
    model_name: glm-4-flash
    url: https://open.bigmodel.cn/api/paas/v4/
    api_key: 你的chat-glm web key
  OllamaLLM:
    # 定义LLM API类型
    type: ollama
    model_name: qwen2.5 #  使用的模型名称,需要预先使用ollama pull下载
    base_url: http://localhost:11434  # Ollama服务地址
  DifyLLM:
    # 定义LLM API类型
    type: dify
    # 建议使用本地部署的dify接口,国内部分区域访问dify公有云接口可能会受限
    # 如果使用DifyLLM,配置文件里prompt(提示词)是无效的,需要在dify控制台设置提示词
    base_url: https://api.dify.ai/v1
    api_key: 你的DifyLLM web key
    # 使用的对话模式 可以选择工作流 workflows/run 对话模式 chat-messages  文本生成 completion-messages
    # 使用workflows进行返回的时候输入参数为 query 返回参数的名字要设置为 answer
    # 文本生成的默认输入参数也是query
    mode: chat-messages
  GeminiLLM:
    type: gemini
    # 谷歌Gemini API,需要先在Google Cloud控制台创建API密钥并获取api_key
    # 若在中国境内使用,请遵守《生成式人工智能服务管理暂行办法》
    # token申请地址: https://aistudio.google.com/apikey
    # 若部署地无法访问接口,需要开启科学上网
    api_key: 你的gemini web key
    model_name: "gemini-2.0-flash"
    http_proxy: ""  #"http://127.0.0.1:10808"
    https_proxy: "" #http://127.0.0.1:10808"
  CozeLLM:
    # 定义LLM API类型
    type: coze
    # 你可以在这里找到个人令牌
    # https://www.coze.cn/open/oauth/pats
    # bot_id和user_id的内容写在引号之内
    bot_id: "你的bot_id"
    user_id: "你的user_id"
    personal_access_token: 你的coze个人令牌
  VolcesAiGatewayLLM:
    # 火山引擎 - 边缘大模型网关
    # 定义LLM API类型
    type: openai
    # 先开通服务,打开以下网址,创建网关访问密钥,搜索并勾选 Doubao-pro-32k-functioncall ,开通
    # 如果需要使用边缘大模型网关提供的语音合成,一并勾选 Doubao-语音合成 ,另见 TTS.VolcesAiGatewayTTS 配置
    # https://console.volcengine.com/vei/aigateway/
    # 开通后,进入这里获取密钥:https://console.volcengine.com/vei/aigateway/tokens-list
    base_url: https://ai-gateway.vei.volces.com/v1
    model_name: doubao-pro-32k-functioncall
    api_key: 你的网关访问密钥
  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
  HomeAssistant:
    # 定义LLM API类型
    type: homeassistant
    base_url: http://homeassistant.local:8123
    agent_id: conversation.chatgpt
    api_key: 你的home assistant api访问令牌
  FastgptLLM:
    # 定义LLM API类型
    type: fastgpt
    # 如果使用fastgpt,配置文件里prompt(提示词)是无效的,需要在fastgpt控制台设置提示词
    base_url: https://host/api/v1
    # 你可以在这里找到你的api_key
    # https://cloud.tryfastgpt.ai/account/apikey
    api_key: 你的fastgpt密钥
    variables:
      k: "v"
      k2: "v2"
  XinferenceLLM:
    # 定义LLM API类型
    type: xinference
    # Xinference服务地址和模型名称
    model_name: qwen2.5:72b-AWQ  # 使用的模型名称,需要预先在Xinference启动对应模型
    base_url: http://localhost:9997  # Xinference服务地址
  XinferenceSmallLLM:
    # 定义轻量级LLM API类型,用于意图识别
    type: xinference
    # Xinference服务地址和模型名称
    model_name: qwen2.5:3b-AWQ  # 使用的小模型名称,用于意图识别
    base_url: http://localhost:9997  # Xinference服务地址
# VLLM配置(视觉语言大模型)
VLLM:
  ChatGLMVLLM:
    type: openai
    # glm-4v-flash是智谱免费AI的视觉模型,需要先在智谱AI平台创建API密钥并获取api_key
    # 可在这里找到你的api key https://bigmodel.cn/usercenter/proj-mgmt/apikeys
    model_name: glm-4v-flash  # 智谱AI的视觉模型
    url: https://open.bigmodel.cn/api/paas/v4/
    api_key: 你的api_key
  QwenVLVLLM:
    type: openai
    model_name: qwen3.5-flash
    url: https://dashscope.aliyuncs.com/compatible-mode/v1
    # 可在这里找到你的api key https://bailian.console.aliyun.com/?apiKey=1#/api-key
    api_key: 你的api_key
  XunfeiSparkLLM:
    # 定义LLM API类型
    type: openai
    # 先新建应用,在下面的地址
    # 开通应用地址:https://console.xfyun.cn/app/myapp
    # 有免费额度,但也要开通服务,才能获取api_key
    # 每一个模型都需要单独开通,每一个模型的api_password都不同,例如Lite模型在https://console.xfyun.cn/services/cbm 开通
    base_url: https://ark.cn-beijing.volces.com/api/v3
    model_name: lite
    api_key: 你的api_password
TTS:
  # 当前支持的type为edge、doubao,可自行适配
  EdgeTTS:
    # 定义TTS API类型
    type: edge
    voice: zh-CN-XiaoxiaoNeural
    output_dir: tmp/
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  DoubaoTTS:
    # 定义TTS API类型
    type: doubao
    # 火山引擎语音合成服务,需要先在火山引擎控制台创建应用并获取appid和access_token
    # 山引擎语音一定要购买花钱,起步价30元,就有100并发了。如果用免费的只有2个并发,会经常报tts错误
    # 购买服务后,购买免费的音色后,可能要等半小时左右,才能使用。
    # 普通音色在这里开通:https://console.volcengine.com/speech/service/8
    # 湾湾小何音色在这里开通:https://console.volcengine.com/speech/service/10007,开通后将下面的voice设置成zh_female_wanwanxiaohe_moon_bigtts
    api_url: https://openspeech.bytedance.com/api/v1/tts
    voice: BV001_streaming
    output_dir: tmp/
    authorization: "Bearer;"
    appid: 你的火山引擎语音合成服务appid
    access_token: 你的火山引擎语音合成服务access_token
    cluster: volcano_tts
    speed_ratio: 1.0
    volume_ratio: 1.0
    pitch_ratio: 1.0
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  #火山tts,支持双向流式tts
  HuoshanDoubleStreamTTS:
    type: huoshan_double_stream
    # 访问 https://console.volcengine.com/speech/service/10007 开通语音合成大模型,购买音色
    # 在页面底部获取appid和access_token
    # 资源ID固定为:volc.service_type.10029(大模型语音合成及混音)
    # 如果是机智云,把接口地址换成wss://bytedance.gizwitsapi.com/api/v3/tts/bidirection
    # 机智云不需要天填 appid
    ws_url: wss://openspeech.bytedance.com/api/v3/tts/bidirection
    appid: 你的火山引擎语音合成服务appid
    access_token: 你的火山引擎语音合成服务access_token
    resource_id: volc.service_type.10029
    speaker: zh_female_wanwanxiaohe_moon_bigtts
    # 开启WebSocket连接复用,默认复用(注意:复用后设备处于聆听状态时空闲链接会占并发数)
    enable_ws_reuse: True
    # 相关参数文档:https://www.volcengine.com/docs/6561/1329505
    # 音频输出配置(audio_params)- 用户可自定义添加火山引擎支持的任何音频参数
    audio_params:
      speech_rate: 0  # 语速(-50~100)
      loudness_rate: 0  # 音量(-50~100)
      # 多情感音色参数,注意:当前仅部分音色支持设置情感。
      # 相关音色列表:https://www.volcengine.com/docs/6561/1257544
      # emotion: "neutral"  # 情感类型(仅部分音色支持):neutral、happy、sad、angry、fearful、disgusted、surprised
      # emotion_scale: 4  # 情感强度(1~5)
    # 高级文本处理配置(additions)- 用户可自定义添加火山引擎支持的任何高级参数
    additions:
      post_process:
        pitch: 0  # 音高(-12~12)
      # aigc_metadata: {}  # AIGC元数据配置
      # cache_config: {}  # 缓存配置
    # 混音控制配置(mix_speaker)- 多音色混合(仅 TTS 1.0)
    # 混音功能主要适用于豆包语音合成模型1.0的音色,使用时需要将req_params.speaker设置为custom_mix_bigtts
    # mix_speaker:
    #   speakers:
    #     - source_speaker: zh_male_bvlazysheep
    #       mix_factor: 0.3
    #     - source_speaker: BV120_streaming
    #       mix_factor: 0.3
    #     - source_speaker: zh_male_ahu_conversation_wvae_bigtts
    #       mix_factor: 0.4
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  #豆包语音合成模型2.0,支持双向流式tts(基于seed-tts-2.0资源)
  HuoshanDoubleStreamTTSV2:
    type: huoshan_double_stream
    # 访问 https://console.volcengine.com/speech/service/10035 开通语音合成大模型,购买音色
    # 在页面底部获取appid和access_token
    # 资源ID固定为:seed-tts-2.0(豆包语音合成模型2.0)
    # 如果是机智云,把接口地址换成wss://bytedance.gizwitsapi.com/api/v3/tts/bidirection
    # 机智云不需要天填 appid
    ws_url: wss://openspeech.bytedance.com/api/v3/tts/bidirection
    appid: 你的火山引擎语音合成服务appid
    access_token: 你的火山引擎语音合成服务access_token
    resource_id: seed-tts-2.0
    speaker: zh_female_xiaohe_uranus_bigtts
    # 开启WebSocket连接复用,默认复用(注意:复用后设备处于聆听状态时空闲链接会占并发数)
    enable_ws_reuse: True
    # 相关参数文档:https://www.volcengine.com/docs/6561/1329505
    # 音频输出配置(audio_params)- 用户可自定义添加火山引擎支持的任何音频参数
    audio_params:
      speech_rate: 0  # 语速(-50~100)
      loudness_rate: 0  # 音量(-50~100)
    # 高级文本处理配置(additions)- 用户可自定义添加火山引擎支持的任何高级参数
    additions:
      post_process:
        pitch: 0  # 音高(-12~12)
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  CosyVoiceSiliconflow:
    type: siliconflow
    # 硅基流动TTS
    # token申请地址 https://cloud.siliconflow.cn/account/ak
    model: FunAudioLLM/CosyVoice2-0.5B
    voice: FunAudioLLM/CosyVoice2-0.5B:alex
    output_dir: tmp/
    access_token: 你的硅基流动API密钥
    response_format: wav
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  CozeCnTTS:
    type: cozecn
    # COZECN TTS
    # token申请地址 https://www.coze.cn/open/oauth/pats
    voice: 7426720361733046281
    output_dir: tmp/
    access_token: 你的coze web key
    response_format: wav
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
    # 以下可不用设置,使用默认设置
    # speed: 1  # 语速:-0.5到2
    # loudness_rate: 0  # 音量:-50到100
  VolcesAiGatewayTTS:
    type: openai
    # 火山引擎 - 边缘大模型网关
    # 先开通服务,打开以下网址,创建网关访问密钥,搜索并勾选 Doubao-语音合成 ,开通
    # 如果需要使用边缘大模型网关提供的 LLM,一并勾选 Doubao-pro-32k-functioncall ,另见 LLM.VolcesAiGatewayLLM 配置
    # https://console.volcengine.com/vei/aigateway/
    # 开通后,进入这里获取密钥:https://console.volcengine.com/vei/aigateway/tokens-list
    api_key: 你的网关访问密钥
    api_url: https://ai-gateway.vei.volces.com/v1/audio/speech
    model: doubao-tts
    # 音色列表见 https://www.volcengine.com/docs/6561/1257544
    voice: zh_male_shaonianzixin_moon_bigtts
    speed: 1
    output_dir: tmp/
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  FishSpeech:
    # 参照教程:https://github.com/xinnan-tech/xiaozhi-esp32-server/blob/main/docs/fish-speech-integration.md
    type: fishspeech
    output_dir: tmp/
    response_format: wav
    reference_id: null
    reference_audio: ["config/assets/wakeup_words.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
    api_key: "你的api_key"
    api_url: "http://127.0.0.1:8080/v1/tts"
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  GPT_SOVITS_V2:
    # 定义TTS API类型
    #启动tts方法:
    #python api_v2.py -a 127.0.0.1 -p 9880 -c GPT_SoVITS/configs/demo.yaml
    type: gpt_sovits_v2
    url: "http://127.0.0.1:9880/tts"
    output_dir: tmp/
    text_lang: "auto"
    ref_audio_path: "demo.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: []
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  GPT_SOVITS_V3:
    # 定义TTS API类型 GPT-SoVITS-v3lora-20250228
    #启动tts方法:
    #python api.py
    type: gpt_sovits_v3
    url: "http://127.0.0.1:9880"
    output_dir: tmp/
    text_language: "auto"
    refer_wav_path: "caixukun.wav"
    prompt_language: "zh"
    prompt_text: ""
    top_k: 15
    top_p: 1.0
    temperature: 1.0
    cut_punc: ""
    speed: 1.0
    inp_refs: []
    sample_steps: 32
    if_sr: false
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  MinimaxTTSHTTPStream:
  # Minimax流式语音合成服务
    type: minimax_httpstream
    output_dir: tmp/
    group_id: 你的minimax平台groupID
    api_key: 你的minimax平台接口密钥
    model: "speech-01-turbo"
    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:
    #     bitrate: 128000
    #     format: "mp3"
    #     channel: 1
    # timber_weights:
    #   -
    #     voice_id: male-qn-qingse
    #     weight: 1
    #   -
    #     voice_id: female-shaonv
    #     weight: 1
    # language_boost: auto
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  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_dir: tmp/
    appkey: 你的阿里云智能语音交互服务项目Appkey
    token: 你的阿里云智能语音交互服务AccessToken,临时的24小时,要长期用下方的access_key_id,access_key_secret
    voice: xiaoyun
    access_key_id: 你的阿里云账号access_key_id
    access_key_secret: 你的阿里云账号access_key_secret
 
    # 以下可不用设置,使用默认设置
    # format: wav
    # volume: 50
    # speech_rate: 0
    # pitch_rate: 0
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  AliyunStreamTTS:
    # 阿里云CosyVoice大模型流式文本语音合成
    # 采用FlowingSpeechSynthesizer接口,支持更低延迟和更自然的语音质量
    # 流式文本语音合成仅提供商用版,不支持试用,详情请参见试用版和商用版。要使用该功能,请开通商用版。
    # 支持龙系列专用音色:longxiaochun、longyu、longchen等
    # 平台地址:https://nls-portal.console.aliyun.com/
    # appkey地址:https://nls-portal.console.aliyun.com/applist
    # token地址:https://nls-portal.console.aliyun.com/overview
    # 使用三阶段流式交互:StartSynthesis -> RunSynthesis -> StopSynthesis
    type: aliyun_stream
    output_dir: tmp/
    appkey: 你的阿里云智能语音交互服务项目Appkey
    token: 你的阿里云智能语音交互服务AccessToken,临时的24小时,要长期用下方的access_key_id,access_key_secret
    voice: longxiaochun
    access_key_id: 你的阿里云账号access_key_id
    access_key_secret: 你的阿里云账号access_key_secret
    # 截至2025年7月21日大模型音色只有北京节点采用,其他节点暂不支持
    host: nls-gateway-cn-beijing.aliyuncs.com
    # 以下可不用设置,使用默认设置
    # format: pcm  # 音频格式:pcm、wav、mp3
    # volume: 50  # 音量:0-100
    # speech_rate: 0  # 语速:-500到500
    # pitch_rate: 0  # 语调:-500到500
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  TencentTTS:
    # 腾讯云智能语音交互服务,需要先在腾讯云平台开通服务
    # appid、secret_id、secret_key申请地址:https://console.cloud.tencent.com/cam/capi
    # 免费领取资源:https://console.cloud.tencent.com/tts/resourcebundle
    type: tencent
    output_dir: tmp/
    appid: 你的腾讯云AppId
    secret_id: 你的腾讯云SecretID
    secret_key: 你的腾讯云SecretKey
    region: ap-guangzhou
    voice: 101001
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
    # 以下可不用设置,使用默认设置
    # format: wav  # 音频格式:pcm、wav、mp3
    # volume: 0  # 音量:-10到10
    # speech_rate: 0  # 语速:-2到6
  TTS302AI:
    # 302AI语音合成服务,需要先在302平台创建账户充值,并获取密钥信息
    # 添加 302.ai TTS 配置
    # token申请地址:https://dash.302.ai/
    # 获取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_dir: tmp/
    access_token: "你的302API密钥"
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  OpenAITTS:
    # openai官方文本转语音服务,可支持全球大多数语种
    type: openai
    # 你可以在这里获取到 api key
    # https://platform.openai.com/api-keys
    api_key: 你的openai api key
    # 国内需要使用代理
    api_url: https://api.openai.com/v1/audio/speech
    # 可选tts-1或tts-1-hd,tts-1速度更快tts-1-hd质量更好
    model: tts-1
    # 演讲者,可选alloy, echo, fable, onyx, nova, shimmer
    voice: onyx
    # 语速范围0.25-4.0
    speed: 1
    output_dir: tmp/
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  CustomTTS:
    # 自定义的TTS接口服务,请求参数可自定义,可接入众多TTS服务
    # 以本地部署的KokoroTTS为例
    # 如果只有cpu运行:docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:latest
    # 如果只有gpu运行:docker run --gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu:latest
    # 要求接口使用POST方式请求,并返回音频文件
    type: custom
    method: POST
    url: "http://127.0.0.1:8880/v1/audio/speech"
    params: # 自定义请求参数
      input: "{prompt_text}"
      response_format: "mp3"
      download_format: "mp3"
      voice: "zf_xiaoxiao"
      lang_code: "z"
      return_download_link: true
      speed: 1
      stream: false
    headers: # 自定义请求头
      # Authorization: Bearer xxxx
    format: mp3 # 接口返回的音频格式
    output_dir: tmp/
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  PaddleSpeechTTS:
    #百度飞浆 PaddleSpeech 支持本地离线部署 支持模型训练
    #框架地址 https://www.paddlepaddle.org.cn/
    #项目地址 https://github.com/PaddlePaddle/PaddleSpeech
    #SpeechServerDemo https://github.com/PaddlePaddle/PaddleSpeech/tree/develop/demos/speech_server
    #流式传输请参考 https://github.com/PaddlePaddle/PaddleSpeech/wiki/PaddleSpeech-Server-WebSocket-API
    type: paddle_speech
    protocol: websocket # protocol choices = ['websocket', 'http']
    url: ws://127.0.0.1:8092/paddlespeech/tts/streaming  # TTS 服务的 URL 地址,指向本地服务器 [websocket默认ws://127.0.0.1:8092/paddlespeech/tts/streaming,http默认http://127.0.0.1:8090/paddlespeech/tts]
    spk_id: 0  # 发音人 ID,0 通常表示默认的发音人
    speed: 1.0  # 语速,1.0 表示正常语速,>1 表示加快,<1 表示减慢
    volume: 1.0  # 音量,1.0 表示正常音量,>1 表示增大,<1 表示减小
    save_path:   # 保存路径
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  IndexStreamTTS:
    # 基于Index-TTS-vLLM项目的TTS接口服务
    # 参照教程:https://github.com/Ksuriuri/index-tts-vllm/blob/master/README.md
    type: index_stream
    api_url: http://127.0.0.1:11996/tts
    audio_format: "pcm"
    # 默认音色,如需其他音色可到项目assets文件夹下注册
    voice: "jay_klee"
    output_dir: tmp/
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  AliBLTTS:
    # 阿里百炼CosyVoice大模型流式文本语音合成
    # 可在这里找到你的 api_key https://bailian.console.aliyun.com/?apiKey=1#/api-key
    # cosyvoice-v3和部分音色需要申请开通
    type: alibl_stream
    api_key: 你的api_key
    model: "cosyvoice-v2"
    voice: "longcheng_v2"
    output_dir: tmp/
    # 以下可不用设置,使用默认设置
    # format: pcm  # 音频格式:pcm、wav、mp3、opus
    # volume: 50  # 音量:0-100
    # rate: 1  # 语速:0.5~2
    # pitch: 1  # 语调:0.5~2
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文
  XunFeiTTS:
    # 讯飞TTS服务 官方网站:https://www.xfyun.cn/
    # 登录讯飞语音技术平台 https://console.xfyun.cn/app/myapp 创建相关应用
    # 选择需要的服务获取api相关配置 https://console.xfyun.cn/services/uts
    # 为需要使用的应用(APPID)购买相关服务 例如:超拟人合成 https://console.xfyun.cn/services/uts
    type: xunfei_stream
    api_url: wss://cbm01.cn-huabei-1.xf-yun.com/v1/private/mcd9m97e6
    app_id: 你的app_id
    api_secret: 你的api_secret
    api_key: 你的api_key
    voice: x5_lingxiaoxuan_flow
    output_dir: tmp/
    # 以下可不用设置,使用默认设置,注意V5音色不支持口语化配置
    # oral_level: mid  # 口语化等级:high, mid, low
    # spark_assist: 1  # 是否通过大模型进行口语化 开启:1, 关闭:0
    # stop_split: 0  # 关闭服务端拆句 不关闭:0,关闭:1
    # remain: 0  # 是否保留原书面语的样子    保留:1, 不保留:0
    # format: raw  # 音频格式:raw(PCM), lame(MP3), speex, opus, opus-wb, opus-swb, speex-wb
    # volume: 50  # 音量:0-100
    # speed: 50  # 语速:0-100
    # pitch: 50  # 语调:0-100
    # language: "中文"  # 指定输出语种,如:中文、英语、日语、韩语等,请根据所选音色支持的语言进行设置,不填则默认为中文