haujetzhao--capswriter-offline
134 行
5.6 KiB
Python
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},
|
|
"""
|
|
|