资讯详情

资讯详情

KOReader 词典发音完全指南:TTS 语音合成让单词读出来,3 分钟上手

KOReader 词典发音完全指南TTS 语音合成让单词读出来3 分钟上手【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader读外文书时看到生词第一反应往往是这个词到底怎么念 KOReader 的词典功能可以帮你把生词念出来——它内置 StarDict 词典查询还能通过 TTS 语音合成把单词发音送到耳边。这篇教程带你看清发音从哪来、在哪触发、不同电纸书上表现有何不同。查词入口长按选词还是手动输入查词有两条路。第一条是选词长按页面选中单词KOReader 会高亮选区并弹出操作按钮点查词典即可。第二条是手动输入从底部菜单进入Dictionary lookup直接敲入单词连-ing这种词形也能查。两条路最终都汇入同一个处理函数源码在 readerdictionary.lua。上手篇如何触发单词发音 流程很短选词 → 点查词 → 结果窗口弹出。发音本身通常藏在词典内容里词典条目中的音频标记如 StarDict 的发音链接在结果窗口里可以点触播放如果你把查词指给了外部词典 AppAndroid 上常见发音就由那个 App 的 TTS 引擎负责朗读返回阅读界面后高亮自动清除查过的词会进Dictionary lookup history点一下历史条目就能重新查询方便回头再听一遍。查词入口的注册逻辑长这样能看出选词和手输殊途同归menu_items.dictionary_lookup { text _(Dictionary lookup), callback function() self:onShowDictionaryLookup() end, }原理篇从选词到出声的完整链路 整个链路用一句话概括选词 → 清洗 → 查词典 → 结果展示 →可选外部合成与播放。关键节点在onLookupWordfunction ReaderDictionary:onLookupWord(word, is_sane, boxes, ...) word self:cleanSelection(word, is_sane) -- 去掉引号、多余字符 Trapper:wrap(function() self:stardictLookup(word, self.enabled_dict_names, not disable_fuzzy_search, boxes, link, dict_close_callback) end) endstardictLookup内部先做一次分叉如果设备声明支持外部查词Device:canExternalDictLookup()且你开了Use external dictionary就把单词交给设备层转发出去否则走内置的startSdcv调用 StarDict 进程查.dict文件结果由 DictQuickLookup 窗口渲染成可滚动的 HTML 条目。语音环节正是发生在这个分叉上内置 StarDict 条目里若带发音标记就点标记播放外部 App 则整词送出由对端完成 TTS 合成并用系统扬声器播回。设备篇Android / Kobo / Kindle 表现有何差异 发音能力取决于设备抽象层怎么实现三端情况不同设备外部查词/TTS 通道实际体验Android支持见 android/device.lua 的doExternalDictLookup最完整可把生词发给第三方词典 AppTTS 朗读后跳回Kobo默认走内置 StarDict取决于词典文件是否含发音标记无系统级 TTS 可依赖Kindle默认走内置 StarDict同 Kobo音频能力受系统限制离线环境只能听词典自带音频PC 模拟器SDL支持通过 shell 命令转发方便接本地命令型 TTS 工具调试发音最方便Android 的实现核心是把单词打包发给外部应用并等待其返回doExternalDictLookup function(self, text, method, callback) external.when_back_callback callback local _, app, action external:checkMethod(dict, method) if action then android.dictLookup(text, app, action) end end,可用哪些外部 App由 frontend/device/thirdparty.lua 按dict角色注册用户也能通过数据目录下的dictionaries.lua自行声明只读说明仓库本身不建议改动。配置篇哪些开关值得调路径底部菜单 → Settings设置→ Dictionary settings。重点四项Use external dictionary发音功能的主开关打开后从选词查词直接走外部 App外部查词方式在多个已安装的词典 App 之间二选一只认当前设备检测到的Enable fuzzy search模糊匹配单词拼错或形态不符也能命中间接提高能查出→能发音的概率Manage dictionaries / Presets按语言管理启用的词典并设优先级发音质量很大程度取决于你装了哪个词典。另有字号、对齐dict_font_size / dict_justify等展示类选项与发音无直接关系但能让听音时的排版更舒服。边界篇现在做不了什么能期待什么坦率说KOReader 本体没有内置 TTS 引擎它不做文本到语音的合成发音靠词典内嵌音频或外部 App 的 TTS。由此带来几个边界平台差异只有 Android 和 SDL 模拟器提供外部转发通道Kobo/Kindle 上想听发音基本要靠词典自带的音频条目语言覆盖能读哪些语言取决于你选的词典文件和外部 App 的语音包离线场景外部 App 方案依赖系统服务飞行模式下的电纸书只能听词典内嵌音频可控项有限语速、发音人这类参数目前无法在 KOReader 内调节需在外部 App 中设置。可以期待的方向包括第三方 TTS 引擎如 eSpeak 类方案以插件形态接入、在查询结果窗内置发音按钮、以及为外部 App 透传语速等参数。KOReader 的架构其实已经为此留好了口子——WordLookedUp事件在每次查词时都会广播doc/Development_guide.md 里也说明了插件如何订阅它。换句话说发音的最后一公里今天由词典和外部 App 承担而框架层面随时可以再接上更多合成方案。想体验完整链路的话最简单的起步是Android 上装好带 TTS 的词典 App打开 Use external dictionary长按一个生词——剩下的就交给声音了。【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →