ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Audiveris 用户配置目录解析:CONFIG_FOLDER、Tessdata 与 TRAIN_FOLDER 完全指南

Audiveris 用户配置目录解析:CONFIG_FOLDER、Tessdata 与 TRAIN_FOLDER 完全指南 桌面应用计算机视觉图像处理OCR【免费下载链接】audiverisLatest generation of Audiveris OMR engine项目地址https://gitcode.com/gh_mirrors/au/audiveris点击查看免费下载Audiveris 光学音乐识别OMR引擎将用户级配置与只读程序资源严格分离所有可以由使用者自行修改的参数、日志设置、插件定义与追加的 GUI 动作都存放在一个随操作系统而异的CONFIG_FOLDER中OCR 所需的 Tesseract 语言数据、以及用于覆盖默认分类模型的自定义训练材料则分别位于tessdata与train子目录。本文基于 docs/_pages/reference/folders/essential.md 展开结合 WellKnowns.java 等源码实现完整梳理这些essential folders在 Windows / Linux / macOS / Flatpak 下的确切路径、每个配置文件的用途与写法以及它们如何在运行时被 Audiveris 探测与加载。读完本文你将能够精准定位、安全修改自己的 Audiveris 配置并正确部署 OCR 语言包与自定义训练模型。目录总览三个核心目录的定位目录说明运行时定义源码CONFIG_FOLDER存放用户可编辑的全局配置文件的根目录WellKnowns.java 中的CONFIG_FOLDERtessdataCONFIG_FOLDER的子目录存放 Tesseract OCR 语言数据由 TesseractOCR.java 在运行时探测/创建TRAIN_FOLDERCONFIG_FOLDER的直接train子目录存放自定义训练材料与模型WellKnowns.java 中CONFIG_FOLDER.resolve(train)从源码可以确认这些目录位于程序的读写区read-write area与只读的RES_URI程序内置资源截然分开——这正是设计上允许高级用户自由增改的前提。Config folder四个核心配置文件Audiveris 在CONFIG_FOLDER中按固定文件名查找以下配置文件文件名称作用run.properties用户修改后的应用常量Application constantslogback.xml日志Logging配置plugins.xml指向外部程序如 MuseScore、Finale的插件定义详见 Plugins 指南user-actions.xml追加的 GUI 动作Additional GUI actions原文强调这些文件可以由你创建或修改前提是你是一名高级用户并且清楚自己在做什么。下面逐一展开每个文件的机制与实操要点。run.properties用户常量覆盖层run.properties是 Audiveris 常量的用户级覆盖文件。在源码 ConstantManager.java 中可以看到其加载逻辑用户属性文件名硬编码为run.propertiesUSER_FILE_NAME加载路径为WellKnowns.CONFIG_FOLDER.resolve(USER_FILE_NAME)即它必须位于CONFIG_FOLDER根目录只写入 USER 属性文件源码中的 SOURCE 默认值不会被改动如果用户把某常量改回与源码默认值相同的值该条目会从 USER 属性文件中剔除保证文件里只保留用户真正的增量修改。此外常量还支持CLI 命令行级覆盖优先级高于用户文件在addConstant中会先检查Main.getCli().getConstants()即-option qualified.namevalue这类命令行参数会优先于run.properties生效。logback.xml日志行为配置仓库在 app/res/logback.xml 中提供了内置的日志配置随只读资源加载同时还有 app/res/logback-elements.xml 作为可复用的配置片段。若用户在CONFIG_FOLDER放置同名logback.xml即可覆盖内置日志级别、输出目标与格式。初始化时机在 WellKnowns.java静态块中通过LogUtil.initialize(CONFIG_FOLDER, RES_URI)完成日志系统初始化并随即创建LOG_FOLDER与TEMP_FOLDER分别为CONFIG_FOLDER之外的log子目录及其temp子目录。plugins.xml外部程序插件定义plugins.xml的作用是把 Audiveris 产出的 MusicXML/Score XML 一键交接给外部程序如 MuseScore、Finale、EasyABC、PriMus。运行时若在CONFIG_FOLDER中发现plugins.xmlAudiveris 会根据文件内容动态生成Plugins下拉菜单与插件工具栏按钮参见 plugins 指南。仓库在 app/config-examples/plugins.xml 提供了完整示例其结构要点如下plugin元素的id属性必填插件唯一名称tip属性可选用作鼠标悬停提示的描述arg子元素必填每个参数一个元素至少有一个arg必须等于{}表示运行时在此插入导出文件的路径。典型配置Windows 环境示例?xml version1.0 encodingUTF-8? plugins !-- MuseScore -- plugin idMuseScore tipInvoke MuseScore on score XML argC:\Program Files (x86)\MuseScore 2\bin\MuseScore.exe/arg arg{}/arg /plugin !-- Finale -- plugin idFinale tipExport to Finale argC:\Program Files (x86)\Finale 2014\Finale.exe/arg arg{}/arg /plugin !-- EasyABC -- plugin idEasyABC tipExport to EasyABC argC:\Program Files (x86)\EasyABC\easy_abc.exe/arg arg{}/arg /plugin /plugins虽然示例中的路径面向 Windows但文件格式本身跨平台通用把arg换成 Linux 下的可执行文件路径如/usr/bin/musescore即可。user-actions.xml追加 GUI 动作user-actions.xml与程序内置的 app/res/system-actions.xml 扮演相似角色后者定义用户界面中提供的各种动作及其在菜单中的分组始终随程序加载而前者若出现在用户CONFIG_FOLDER中则定义额外的动作并插入到既有下拉菜单。仓库示例 app/config-examples/user-actions.xml 展示了动作的写法?xml version1.0 encodingUTF-8? actions action domainDEBUG section50 classorg.audiveris.omr.ui.GuiActions methodclearLog buttonjavax.swing.JButton/ action domainDEBUG section70 classorg.audiveris.omr.sheet.ui.BookActions methoddumpEventServices/ /actions每个action通过domain菜单域、section在菜单中的序号、class承载动作的类、method要调用的方法来定位并挂接示例中的 DEBUG 域动作会出现在调试菜单相应位置。从 app/config-examples/README.md 可以确认config-examples目录中的示例文件并非程序直接使用用户需要把示例文件复制同名、内容可定制到自己的config目录后才会在运行时被 Audiveris 探测到。CONFIG_FOLDER 的精确位置按操作系统解析CONFIG_FOLDER的具体位置由 WellKnowns.getFolder(FolderKind.CONFIG) 依据当前平台计算原文给出的完整对照如下操作系统CONFIG_FOLDERWindows%APPDATA%\AudiverisLtd\audiveris\configLinux方式 1$XDG_CONFIG_HOME/AudiverisLtd/audiverisLinux方式 2$HOME/.config/AudiverisLtd/audiverisFlatpak$HOME/.var/app/org.audiveris.audiveris/configmacOS$HOME/Library/Application Support/AudiverisLtd/audiveris源码中的计算逻辑与表格完全对应并揭示了几个值得注意的实现细节路径前缀TOOL_PREFIX / COMPANY_ID / TOOL_ID即AudiverisLtd/audiveris见 WellKnowns.java各平台路径都是在此基础上拼出Linux 双路径优先尝试XDG_CONFIG_HOME环境变量xdgProperty(CONFIG) XDG_CONFIG_HOME未设置时回退到$HOME/.configFlatpak 特例当检测到FLATPAK_ID环境变量时Linux 分支直接使用 XDG 变量本身不加TOOL_PREFIX因为 Flatpak 的XDG_CONFIG_HOME已被沙箱重定向到$HOME/.var/app/org.audiveris.audiveris/故最终完整路径为$HOME/.var/app/org.audiveris.audiveris/configWindows 特例配置在%APPDATA%\AudiverisLtd\audiveris\configaudiverisPath.resolve(config)而用户数据DATA_FOLDER则放在我的文档下的Audiveris目录二者并不相同环境变量缺失保护若所需环境变量APPDATA、HOME等未设置getFolder会打印*** INIT_ERROR并返回null避免静默使用错误路径。需要说明的是若你在 Linux 上为XDG_CONFIG_HOME设置了自定义路径那么CONFIG_FOLDER就是$XDG_CONFIG_HOME/AudiverisLtd/audiveris非 Flatpak 时始终追加TOOL_PREFIXFlatpak 沙箱内的 XDG 值已被框架改写因此路径形态固定为表格中的形式。Tessdata 文件夹Tesseract 语言数据自 Audiveris 5.4 版本起Tesseract OCR 软件所需的语言文件托管在CONFIG_FOLDER的tessdata子目录中。交互式用户只需使用界面中的Languages下拉菜单即可自动填充该目录。源码 TesseractOCR.java 给出了findOcrFolder()的完整探测顺序这比文档描述更精确优先使用TESSDATA_PREFIX环境变量若该变量被设置且指向一个存在的目录则直接采用Paths.get(tessPrefix)其次使用 Audiveris 用户配置下的tessdata即WellKnowns.CONFIG_FOLDER.resolve(tessdata)若目录不存在则尝试自动创建Files.createDirectories两者都不可用时记录ocrNotFoundMsg警告并返回null。仓库内置的英文语言包位于 app/tessdata/eng.traineddata属于只读资源用户可自行向配置目录下的tessdata添加其他语言的*.traineddata文件也可通过 Languages 菜单在线获取。运行时getSupportedLanguages()会扫描该 OCR 目录下的语言文件生成可用的语言集合。Train 文件夹自定义训练材料与模型TRAIN_FOLDER用于存放用户自定义的训练材料与训练好的模型以覆盖 Audiveris 默认的模型。它被定义为CONFIG_FOLDER的直接train子目录WellKnowns.java其包含的文件如下文件名称作用basic-classifier.zip字形分类器glyph classifier的训练模型与归一化数据normssamples.zip训练样本的全局仓库global repository of training samplesimages.zip训练样本的背景乐谱图background sheet images of training samples源码印证了这些文件的读取约定仓库内置的默认模型资源为 app/res/basic-classifier.zip属于只读资源用户把同名文件放入train目录即可覆盖默认模型SampleRepository.java 中定义了samples.zipSAMPLES_FILE_NAME作为全局仓库文件名其全局实例从WellKnowns.TRAIN_FOLDER.resolve(samples.zip)加载见 SampleRepository.java同时每个乐谱Book还可以有局部的BOOK_NAME-samples.zip仓库images.zipIMAGES_FILE_NAME见 SampleRepository.java存放训练样本对应的背景图像。由此可推断训练工作流的落地方式是——把训练产生的模型与样本归档为这三个 zip 文件放入TRAIN_FOLDERAudiveris 启动/初始化分类器与样本仓库时就会优先使用这些用户版本。更深入的自定义训练流程可参阅 训练指南 与 分类器相关说明。实操速查从示例到生效综合上文在任意平台上完成一次自定义配置的标准路径如下定位CONFIG_FOLDER按上表找到对应操作系统的配置目录Linux 下可先执行echo $XDG_CONFIG_HOME确认是否设置未设置则用$HOME/.config复制示例文件把 app/config-examples/ 下需要的示例如plugins.xml、user-actions.xml复制到CONFIG_FOLDER按需修改内容插件路径、动作列表等可选覆盖日志与常量在CONFIG_FOLDER放置自定义logback.xml与run.properties可选部署 OCR 语言通过界面 Languages 菜单填充CONFIG_FOLDER/tessdata或手动放置*.traineddata可选覆盖训练模型在CONFIG_FOLDER/train中放置basic-classifier.zip、samples.zip、images.zip重启 Audiveris这些文件均在启动阶段被探测与加载修改后需重启生效。注意config-examples目录中的文件仅是模板程序并不会直接读取它们config-examples/README.md务必复制到用户配置目录后再编辑。若不确定某配置项的影响请先备份原文件因为文档与示例均明确提示这些是高级用户才应触碰的设置。赞分享桌面应用计算机视觉图像处理OCR【免费下载链接】audiverisLatest generation of Audiveris OMR engine项目地址https://gitcode.com/gh_mirrors/au/audiveris点击查看免费下载相关推荐Rufus 3.22Win7 还能做启动盘吗边界说清楚Rufus 3.22Win7 还能做启动盘吗边界说清楚 Rufus 从 4.0 起不再支持 Windows 7老系统上双击 4.x 桌面毫无反应。3.22桌面应用开发工具Nix 通用环境变量完全指南配置、Store、求值器与用户目录的底层解析Nix 通用环境变量完全指南配置、Store、求值器与用户目录的底层解析 导读 Nix 作为纯函数式包管理器其绝大多数命令都会读取一组通用的环境变量来调整包管理器开发工具CLI构建工具Apache Pulsar 配置全解析从 conf 目录到 ServiceConfiguration 的完整配置指南Apache Pulsar 配置全解析从 conf 目录到 ServiceConfiguration 的完整配置指南 Pulsar 的所有行为都由配置文件驱动消息队列后端流处理上一篇如何通过插件扩展Calibre电子书管理器的功能实用指南下一篇如何使用radare2进行代码注入修改二进制文件的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表