forked from HaujetZhao/CapsWriter-Offline
-
Notifications
You must be signed in to change notification settings - Fork 3
/
config.toml
361 lines (255 loc) · 11.7 KB
/
config.toml
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
# ======================服务端配置==================================
[server]
model = "Sensevoice"
# 'Sensevoice' 或 'Paraformer'
# Sensevoice模型虽然多了粤英日韩多语种,但是,中文识别效果大不如Paraformer模型
# 比如转录字幕不完整,识别结果不准确、丢失标点等
# 如果你只说中文普通话,建议使用 'Paraformer' 模型
# 不影响简繁转换和翻译
addr = "0.0.0.0"
# 服务端监听地址
speech_recognition_port = "6016"
# 语音识别服务端口
start_online_translate_server = true
# 是否启用在线翻译服务
start_offline_translate_server = true
# 是否启用离线翻译服务
offline_translate_port = "6017"
# 离线翻译服务端口
format_num = true
# 是否将中文数字转为阿拉伯数字
format_punc = true
# 使用 'Paraformer' 模型时,输出时是否启用标点符号引擎
format_spell = true
# 是否调整中英之间的空格
shrink_automatically_to_tray = true
# 启动后是否自动缩小至托盘
only_run_once = true
# 只允许运行一次,禁止多开
in_the_meantime_start_the_client = true
# 启动服务端时是否同时启动客户端
in_the_meantime_start_the_client_and_run_as_admin = true
# 启动服务端的同时以管理员权限启动客户端
# 当某程序以管理员权限运行
# 可能会出现有识别结果但是却无法在那个程序输入文字的状况
# 例如:Listary、PixPin等
# 这是因为 start_client_gui.exe 默认以用户权限运行客户端
# 运行在用户权限的程序无法控制管理员权限的程序
# 你可以关闭用户权限运行的客户端
# 尝试使用 start_client_gui_admin.exe
# 以管理员权限运行客户端
# ======================客户端配置==================================
[client]
addr = "127.0.0.1"
# 要连接的服务端地址
speech_recognition_port = "6016"
# 语音识别服务端口
offline_translate_port = "6017"
# 离线翻译服务端口
offline_translate_port_gemma2b = "11434"
# Gemma 2B 离线翻译端口
speech_recognition_shortcut = "caps lock"
# 控制录音的快捷键,默认是 "caps lock"
use_offline_translate_function = true
# 是否启用离线翻译功能
offline_translate_shortcut = "left shift"
# 控制离线翻译的快捷键,默认是 "left shift",按住 Left Shift 再按 CapsLock 进行离线翻译
offline_translate_and_replace_the_selected_text_shortcut = "ctrl + alt + p"
# 控制离线翻译将光标选中的中文翻译并替换为英文的快捷键
# 如果未选中任何文字,会将剪贴板的文字翻译为英文并粘贴
use_online_translate_function = true
# 是否启用在线翻译功能
online_translate_shortcut = "right shift"
# 控制在线翻译的快捷键,默认是 Right Shift,按住 Right Shift 再按 CapsLock 进行在线翻译
# 在线翻译基于 DeepLX,过于频繁的请求可能导致 IP 被封
# 如果出现 429 错误,则表示你的 IP 被 DeepL 暂时屏蔽了,请不要在短时间内频繁请求
online_translate_target_languages = "JA"
# 在线翻译目标语言
# 常用的 EN JA RU,更多选择参考 https://www.deepl.com/docs-api/translate-text
online_translate_and_replace_the_selected_text_shortcut = "ctrl + alt + ["
# 控制在线翻译将光标选中的中文翻译并替换为在线翻译目标语言的快捷键
# 如果未选中任何文字,会将剪贴板的文字翻译为目标语言并粘贴
use_search_selected_text_with_everything_function = true
# 是否启用使用 Everything 搜索选中文字的功能
search_selected_text_with_everything_shortcut = "ctrl + alt + f"
# 调用 Everything 搜索光标选中的字符
# 使用前需先安装 Everything,https://www.voidtools.com/zh-cn/downloads/
everything_exe_path = "C:\\Program Files\\Everything\\Everything.exe"
# 设置 Everything 可执行文件位置
hold_mode = true
# 长按模式,按下录音,松开停止,像对讲机一样用
# 改为 False,则关闭长按模式,也就是单击模式
# 即:单击录音,再次单击停止
# 且:长按会执行原本的单击功能
suppress = false
# 是否阻塞按键事件(让其它程序收不到这个按键消息)
restore_key = true
# 录音完成,松开按键后,是否自动再按一遍,以恢复 CapsLock 或 Shift 等按键之前的状态
threshold = 0.3
# 按下快捷键后,触发语音识别的时间阈值
paste = true
# 是否以写入剪切板然后模拟 Ctrl-V 粘贴的方式输出结果
restore_clipboard_after_paste = true
# 模拟粘贴后是否恢复剪贴板
save_audio = true
# 是否保存录音文件
save_markdown = true
# 是否将记录写入 Markdown 文件
audio_name_len = 20
# 将录音识别结果的前多少个字存储到录音文件名中,建议不要超过 200
reduce_audio_files = true
# 如果用户已安装 ffmpeg,调用 ffmpeg 录音时输出 mp3 格式的音频文件,大大减小文件体积,减少磁盘占用
trash_punc = ",。,."
# 识别结果要消除的末尾标点
hot_zh = true
# 是否启用中文热词替换,中文热词存储在 hot_zh.txt 文件里
"多音字" = true
# True 表示多音字匹配
"声调" = false
# False 表示忽略声调区别,这样「黄章」就能匹配「慌张」
hot_en = true
# 是否启用英文热词替换,英文热词存储在 hot_en.txt 文件里
hot_rule = true
# 是否启用自定义规则替换,自定义规则存储在 hot_rule.txt 文件里
hot_kwd = true
# 是否启用关键词日记功能,自定义关键词存储在 keyword.txt 文件里
mic_seg_duration = 15
# 麦克风听写时分段长度:15 秒
mic_seg_overlap = 2
# 麦克风听写时分段重叠:2 秒
file_seg_duration = 25
# 转录文件时分段长度:25 秒
file_seg_overlap = 2
# 转录文件时分段重叠:2 秒
mute_other_audio = true
# 录音时是否静音其他音频播放
pause_other_audio = true
# 录音时是否暂停其他音频播放
arabic_year_number = true
# 将 ****年 大写汉字替换为阿拉伯数字 ****年,例如一八四八年 替换为 1848 年
shrink_automatically_to_tray = false
# 启动后是否自动缩小至托盘
only_run_once = true
# 只允许运行一次,禁止多开
only_enable_microphones_when_pressed_record_shortcut = true
# 只在按下录音快捷键时启用麦克风
# 建议启用,有些蓝牙耳机录音时无法播放
# 而且启用后,切换默认麦克风也不用重启客户端
# 比如从蓝牙耳机换回笔记本电脑默认麦克风
# 缺点就是输入的时候可能会慢些
# 毕竟要先建立与麦克风的连接
vscode_exe_path = "C:\\SSS\\VSCode\\Code - Insiders.exe"
# 设置 VSCode 可执行文件位置
# 用于通过客户端托盘图标右键菜单项 View 子菜单项
# 🤓 Open Home Folder With VSCode
# 使用 VSCode 快速打开 CapsWriter 主目录
# 方便调试
play_start_music = true
# 开始任务时是否播放提示音
# 需要 ffplay.exe
start_music_path = "assets/start.mp3"
# 开始任务提示音的文件路径
start_music_volume = "100"
# 开始任务提示音的音量,0 ~ 100 之间
play_stop_music = true
# 结束任务时是否播放提示音
# 需要 ffplay.exe
stop_music_path = "assets/stop.mp3"
# 结束任务提示音的文件路径
stop_music_volume = "50"
# 结束任务提示音的音量,0 ~ 100 之间
hint_while_recording_at_edit_position_powered_by_ahk = true
# 是否启用基于 AHK 的输入光标位置的输入状态提示功能
hint_while_recording_at_cursor_position = true
# 是否启用跟随鼠标光标位置的新版输入状态提示功能
check_microphone_usage_by = "注册表"
# "按键" 或 "注册表"
# 默认通过监测注册表判断麦克风是否在被客户端使用进而确定是否在录音
# 如果设置了 `only_enable_microphones_when_pressed_record_shortcut = False`
# 会造成的鼠标光标旁边永远显示麦克风标志
# 将强制忽略此项设置使用 "按键"
# "按键" 是通过监测 `speech_recognition_shortcut` 状态是否按下进而推测是否在录音
enable_double_click_opposite_state = true
# 是否启用双击 `录音键` 临时转换 `简/繁` 体中文输出的功能
convert_to_traditional_chinese_main = "简"
# `简/繁` 中文作为主要输出
opencc_converter = "s2t.json"
# OpenCC 转换器
# s2t.json Simplified Chinese to Traditional Chinese 简体到繁体
# t2s.json Traditional Chinese to Simplified Chinese 繁体到简体
# s2tw.json Simplified Chinese to Traditional Chinese (Taiwan Standard) 简体到台湾正体
# tw2s.json Traditional Chinese (Taiwan Standard) to Simplified Chinese 台湾正体到简体
# s2hk.json Simplified Chinese to Traditional Chinese (Hong Kong Standard) 简体到香港繁体(香港小学学习字词表标准)
# hk2s.json Traditional Chinese (Hong Kong Standard) to Simplified Chinese 香港繁体(香港小学学习字词表标准)到简体
# s2twp.json Simplified Chinese to Traditional Chinese (Taiwan Standard) with Taiwanese idiom 简体到繁体(台湾正体标准)并转换为台湾常用词汇
# tw2sp.json Traditional Chinese (Taiwan Standard) to Simplified Chinese with Mainland Chinese idiom 繁体(台湾正体标准)到简体并转换为中国大陆常用词汇
# t2tw.json Traditional Chinese (OpenCC Standard) to Taiwan Standard 繁体(OpenCC 标准)到台湾正体
# t2hk.json Traditional Chinese (OpenCC Standard) to Hong Kong Standard 繁体(OpenCC 标准)到香港繁体(香港小学学习字词表标准)
# t2jp.json Traditional Chinese Characters (Kyūjitai) to New Japanese Kanji (Shinjitai) 繁体(OpenCC 标准,旧字体)到日文新字体
# jp2t.json New Japanese Kanji (Shinjitai) to Traditional Chinese Characters (Kyūjitai) 日文新字体到繁体(OpenCC 标准,旧字体)
# ======================DeepLX 配置==================================
[deeplx]
online_translate_port = "1188"
# DeepLX 在线翻译服务端口
exe_path = "deeplx_windows_amd64.exe"
# DeepLX 可执行文件路径
api = "http://127.0.0.1:1188/translate"
# DeepLX API 地址
# ======================模型路径配置==================================
[model_paths]
model_dir = "models"
# 模型文件目录
sensevoice_path = "models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17/model.int8.onnx"
# SenseVoice 模型路径
sensevoice_tokens_path = "models/sherpa-onnx-sense-voice-zh-en-ja-ko-yue-2024-07-17/tokens.txt"
# SenseVoice tokens 路径
paraformer_path = "models/paraformer-offline-zh/model.int8.onnx"
# Paraformer 模型路径
paraformer_tokens_path = "models/paraformer-offline-zh/tokens.txt"
# Paraformer tokens 路径
punc_model_dir = "models/punc_ct-transformer_cn-en"
# 标点模型目录
opus_mt_dir = "models/Helsinki-NLP--opus-mt-zh-en"
# 离线翻译模型目录
# ======================SenseVoice 参数配置==================================
[sensevoice_args]
model = "${model_paths.sensevoice_path}"
# SenseVoice 模型路径
tokens = "${model_paths.sensevoice_tokens_path}"
# SenseVoice tokens 路径
num_threads = 6
# 使用的线程数
sample_rate = 16000
# 采样率
feature_dim = 80
# 特征维度
decoding_method = "greedy_search"
# 解码方法
debug = false
# 是否启用调试模式
provider = "cpu"
# 推理设备(cpu, cuda, coreml)
language = "auto"
# 识别语言(auto, zh, en, ja, ko, yue)
use_itn = true
# 是否使用逆文本归一化
rule_fsts = ""
# 自定义规则 FST 文件路径
rule_fars = ""
# 自定义规则 FAR 文件路径
# ======================Paraformer 参数配置==================================
[paraformer_args]
paraformer = "${model_paths.paraformer_path}"
# Paraformer 模型路径
tokens = "${model_paths.paraformer_tokens_path}"
# Paraformer tokens 路径
num_threads = 6
# 使用的线程数
sample_rate = 16000
# 采样率
feature_dim = 80
# 特征维度
decoding_method = "greedy_search"
# 解码方法
debug = false
# 是否启用调试模式