项目文件夹

文件
2026-07-13 12:28:27 +08:00

134 行
5.6 KiB
Python

import os
from collections.abc import Iterable
from pathlib import Path
# 版本信息
__version__ = '2.6'
# 项目根目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# 客户端配置
class ClientConfig:
addr = '127.0.0.1' # Server 地址
port = '6016' # Server 端口
# 快捷键配置列表
shortcuts = [
{
'key': 'caps_lock', # 监听大写锁定键
'type': 'keyboard', # 是键盘快捷键
'suppress': True, # 阻塞按键(短按会补发)
'hold_mode': True, # 长按模式
'enabled': True # 启用此快捷键
},
{
'key': 'x2',
'type': 'mouse',
'suppress': True,
'hold_mode': True,
'enabled': True
},
]
threshold = 0.3 # 快捷键触发阈值(秒)
paste = False # 是否以写入剪切板然后模拟 Ctrl-V 粘贴的方式输出结果
restore_clip = True # 模拟粘贴后是否恢复剪贴板
paste_apps = ['WeiXin.exe', 'Telegram.exe'] # 匹配时强制粘贴
enter_apps = [('happ.exe', 0.5), ('hexin.exe', 0.5)] # (应用名, 延迟秒数) 输出完成后自动回车,如同花顺,输入股票名后,需要回车才能切换
save_audio = True # 是否保存录音文件
audio_name_len = 20 # 将录音识别结果的前多少个字存储到录音文件名中,建议不要超过200
context = '' # 提示词上下文,用于辅助 Fun-ASR-Nano 模型识别(例如输入人名、地名、专业术语等)
language = 'auto' # 识别语言:'auto', 'chinese', 'english', 'japanese' 等(各引擎支持范围不同)
trash_punc = ',。,.' # 识别结果要消除的末尾标点
trash_punc_thresh = 8 # 识别结果的单词数量低于阈值时,强制去除末尾标点
trash_punc_apps = ['WeiXin.exe', ] # 对于指定的应用,强制去除末尾标点
traditional_convert = False # 是否将识别结果转换为繁体中文
traditional_locale = 'zh-hant' # 繁体地区:'zh-hant'(标准繁体), 'zh-tw'(台湾繁体), 'zh-hk'(香港繁体)
hot = True # 是否启用热词替换(统一 RAG 匹配)
hot_thresh = 0.85 # RAG 替换热词阈值(高阈值,用于实际替换)
hot_similar = 0.6 # RAG 相似热词阈值(低阈值,用于 LLM 上下文)
hot_rule = True # 是否启用自定义规则替换(基于正则表达式)
llm_enabled = True # 是否启用 LLM 润色功能,需要配置 LLM/ 目录下的角色文件
llm_stop_key = 'esc' # 中断 LLM 输出的快捷键
enable_tray = True # 客户端默认启用托盘图标功能
# 日志配置
log_level = 'DEBUG' # 日志级别:'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'
mic_seg_duration = 60 # 麦克风听写时分段长度:60秒
mic_seg_overlap = 4 # 麦克风听写时分段重叠:4秒
file_seg_duration = 60 # 转录文件时分段长度
file_seg_overlap = 4 # 转录文件时分段重叠
file_save_srt = True # 转录文件时是否保存 srt 字幕
file_save_txt = True # 转录文件时是否保存 txt 文本(按标点切分后的)
file_save_json = True # 转录文件时是否保存 json 结果(含原始时间戳)
file_save_merge = False # 转录文件时是否保存 merge.txt(未切分的段落长文本)
udp_broadcast = False # 是否启用 UDP 广播输出结果
udp_broadcast_targets = [ # UDP 广播目标地址列表,格式: (地址, 端口)
('127.255.255.255', 6017), # 本地回环广播
# ('192.168.1.255', 6017), # 局域网广播(示例,按需启用)
]
udp_control = False # 是否启用 UDP 控制录音(外部程序发送 START/STOP 命令)
udp_control_addr = '127.0.0.1' # UDP 控制监听地址('0.0.0.0' 允许外部访问)
udp_control_port = 6018 # UDP 控制监听端口
# 快捷键配置说明
r"""
快捷键配置字段说明:
key - 按键名称(见下方可用按键列表)
type - 输入类型:'keyboard'(键盘)或 'mouse'(鼠标)
suppress - 是否阻塞按键(True=阻塞,False=不阻塞)
hold_mode - 长按模式(True=按下录音松开停止,False=单击开始再次单击停止)
enabled - 是否启用此快捷键
阻塞模式说明:
- 阻塞模式 :长按录音识别,短按(<0.3秒)则自动补发按键,不影响单击功能
- 非阻塞模式:对于 CapsLock/NumLock/ScrollLock 这类切换键,松开时会自动补发,以恢复按键状态
可用按键名称:
字母数字:a - z, 0 - 9(大键盘)
符号键:, . / \ ` ' - = [ ] ; '
功能键:f1 - f24
控制键:
ctrl_l, ctrl_r,
shift, shift_r,
alt_l, alt_gr,
cmd, cmd_r
特殊键:
space, enter, tab, backspace, delete, insert, home, end
page_up, page_down, esc, caps_lock, num_lock, scroll_lock
print_screen, pause, menu
方向键:up, down, left, right
鼠标键:x1, x2
示例配置:
{'key': 'caps_lock', 'type': 'keyboard', 'suppress': False, 'hold_mode': True, 'enabled': True},
{'key': 'f12', 'type': 'keyboard', 'suppress': True, 'hold_mode': True, 'enabled': True},
{'key': 'x2', 'type': 'mouse', 'suppress': True, 'hold_mode': True, 'enabled': True},
"""