耳标和语音规则
耳标和语音规则是一款NVDA插件,可以让 NVDA 播放耳标及其他音频效果(如韵律调整)。
该插件前身为"语音标点",现已整合了"Unspoken"插件的几乎所有功能(截至2024年,原插件已停止维护)。
演示
点击此处收听语音标点的示例语音(10秒音频):
https://soundcloud.com/user-977282820/nvda-phonetic-punctuation-demo
下载
请通过NVDA插件商店安装最新版本。
使用说明
- 确保"耳标和语音规则"插件已启用。按NVDA+Alt+P切换启用状态
- 通过NVDA菜单"选项"中的"耳标和语音规则"设置每种规则
- 默认包含预定义音频规则集(多数默认禁用),可通过配置界面启用或新增规则
- 规则文件保存于NVDA配置目录的
earconsAndSpeechRules.json
- 注意:不同语音合成器对设置的支持存在差异(详见"支持的语音合成器"章节)
规则类型
通过NVDA设置中的"耳标和语音规则"面板进行配置
文本规则
基于正则表达式匹配NVDA朗读的内容,可替换为耳标或调整韵律参数(如音高)。支持以下触发条件:
- 特定应用程序(需参考"黑名单设置"章节获取应用名称)
- 指定窗口标题
- 特定URL(需安装BrowserNav插件)
执行顺序遵循配置列表顺序。若规则失效,建议将其置顶(例如:IP地址匹配需确保未被前置规则修改)。
注意:逐字符移动时不会触发文本规则。
字符规则
拼读模式下,可将字符描述(如"空格"或"Tab")替换为耳标。不影响普通文本朗读。
对象角色
根据控件类型(如"可编辑区域"或"按钮")播放对应耳标。此功能原属Unspoken插件。
状态与否定状态
可将"已勾选"等状态替换为耳标,或通过勾选"在非详细状态模式下禁止读出该状态"隐藏次要信息。
按NVDA+Alt+[ 可切换简洁状态朗读模式(访问http://google.com对比主编辑框的朗读差异)。
文本格式
支持通过耳标或韵律参数反馈以下格式:
数值格式
提供两种朗读方式:
- 通过音高反馈字号
- 用"H1"等简写替代"1级标题"
其他音频规则
可替换以下NVDA朗读内容:
- 空白区域
- 离开容器(如框架、表格、列表)
- 无缩进(当缩进级别播报设为语音时)
快捷键
- NVDA+Alt+P:切换插件功能启用状态
- NVDA+Alt+[:切换简洁状态朗读模式
- NVDA+H:读出当前标题级别
支持的语音合成器
注:因依赖高级语音指令,部分TTS存在兼容性问题
良好支持
- Microsoft Speech API
- eSpeak
- Windows OneCore
- Eloquence threshold
已知问题
- IBMTTS(2024年12月):参见此问题。已通过此PR修复,但作者尚未合并。如需使用,请敦促作者合并。
- RHVoice(2020年1月):不支持BreakCommand
黑名单设置
在匹配的应用名称内禁用该插件,多个应用名称以半角逗号(,)分隔。
获取当前应用名称:切换到目标应用 → 按NVDA+Control+Z打开控制台 → 输入focus.appModule.appName
示例:slack,discord
已知问题与限制
- "离开容器"耳标可能顺序错乱(如在标题后触发而非标题前)
- 因标题处理机制导致文本块分割时产生复杂交互
- 角色/状态/格式规则在"全文朗读"模式中无效
- 韵律指令在全文朗读时可能被重新排序,导致缓冲区下溢(暂列为低优先级)
- 链接内格式变化会重复触发链接耳标
- 因
getTextInfoSpeech函数中的if not extraDetail:条件导致(规避可能引发更多副作用)
版权声明
- 3D/钟声/经典/泛钟声类耳标:由T.V. Raman设计(源自emacspeak),详见:https://github.com/tvraman/emacspeak/
- 标点类耳标:由Kara Goldfinch设计
- 角色类耳标:由Unspoken插件原作者设计