weird 发表于 2018-6-13 14:34:12

用快捷键实现GoldenDict多个语音朗读的切换控制

本帖最后由 weird 于 2018-6-13 19:38 编辑

目前GoldenDict的发音快捷键是Alt+S,但仅能播放当前词典页面的第一个本地语音,而且大部分词典还都是英音在前美音在后,不利于学习美语。
幸好有专门的发音词典,如garypang的最全真人发音库/COCA6W+词组释义比例词频排名,稍微缓解了首选美音且集中比较各种读音的需求。
但我一直没有找到可以用键盘快捷键实现“朗读下一个”和“朗读上一个”或类似的控制功能。

这个需求详细来说,主要来源于以下方面:
1、家里小孩(2岁和6岁)难以用鼠标精确控制位置,但他们却可以熟练使用键盘精确控制各种操作;
2、目前个人希望通过多听各种口音来加深印象,但每次都要在键盘和鼠标之间频繁切换,很不方便;
3、目前个人借助于AHK基本实现了绝大部分GoldenDict的全键盘操作,仅有朗读多个读音无法实现无鼠标操作。

不知道上述需求在技术上能否实现?之前看到帖子 GoldenDict精准指定发音方案,供借鉴。

weird 发表于 2018-6-13 15:26:32

我在Chrome里使用Vimium插件,只要先按F,页面就会出现所有链接的快捷键,然后根据需要按相应的快捷键即可访问相应链接。
如下所示,我在Longman官网,即可实现全键盘操控任何读音。

这种机制能否在GoldenDict中也实现呢?

greatszh 发表于 2018-6-13 15:35:11

autoHotKey应该是可以实现你的功能,不过编程的难度可能对你来讲有点大,得先利用html的xml层面的解析对应一下随后的发音喇叭的具体位置.估计小孩儿也未必能看得懂对应的英文释义,字典层面.你要是如果仅仅想听听不同的发音的话,建议你装个语音引擎,找全各种口音的声音文件就是了.或者好像还有个专门的天南海北的发音网站,写个py的脚本,网上临时爬一下.不过可能对没搞过开发的,门槛有点高.

2018wowo 发表于 2018-6-13 17:29:08

很想了解,但是不知道怎么弄法,希望大神们多分享些简易操作链接。。

weird 发表于 2018-6-13 17:44:00

本帖最后由 weird 于 2018-6-13 18:06 编辑

想到一个很简单的解决办法,不必编程:(shift+)Tab+回车,即可实现上下切换,若结合AHK,即可实现单个快捷键进行相应切换。

但是这种解决办法不如上述GIF演示的Chrome中vimium的灵活性,只能顺序处理,只是刚好适合在置顶位置的发音词典。
并不能完全解决GoldenDcit官方开发论坛提出的这个灵活性需求:https://github.com/goldendict/goldendict/issues/756

garypang 发表于 2018-6-13 19:54:16

已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653

weird 发表于 2018-6-13 19:57:32

garypang 发表于 2018-6-13 19:54
已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...

太牛了!有求必应的大神啊!解决了我的大问题啊。

Hirutsuki 发表于 2018-6-13 21:17:59

garypang 发表于 2018-6-13 19:54
已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...

大大 想请教一个问题不知道可以吗
我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查询的逻辑似乎是不一样的 直接依葫芦画瓢用这个地址(https://dictionary.cambridge.org/dictionary/learner-english/%GDWORD%)没有用
虽然输入词条可以调出CLD 但是只打开了首页 并没有查询
想请教下有办法通过这种方式调用CLD吗 我没有做py脚本的能力...本想如果能直接调用就好了{:11_404:}
我是个技术盲 问了很蠢的问题多有打扰(土下座

garypang 发表于 2018-6-13 21:56:52

本帖最后由 garypang 于 2018-6-13 22:00 编辑

Hirutsuki 发表于 2018-6-13 21:17
大大 想请教一个问题不知道可以吗
我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查 ...

很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的,会影响其他词典,也拖累其他词典的查询速度,
具体Py代码
import urllib3
from urllib.parse import quote
import io
import sys
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')

http = urllib3.PoolManager()
x = quote(sys.argv)
y = "https://dictionary.cambridge.org/dictionary/learner-english/"
r = http.request('GET', y+x)
data = r.data.decode('utf-8')
css = """<style type="text/css">
</style>"""
print('<head>\n%s\n</head>\n%s' % (css, data))
下载安装python3,
命令行 pip install urllib3
上述代码保存为cambridge.py文件放在电脑某个位置(以D:\根目录为例)
goldendict 词典来源->程序 类型选html 命令行键入python D:\cambridge.py %GDWORD%   勾上已启用

Hirutsuki 发表于 2018-6-13 22:45:54

garypang 发表于 2018-6-13 21:56
很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的, ...

{:11_404:}{:11_404:}{:11_404:}天啊 太感动了 一谢再谢

wantto123 发表于 2018-6-14 10:43:56

大神真多,我连词典都没弄清楚,你们就已经在研究编程了。。
页: [1]
查看完整版本: 用快捷键实现GoldenDict多个语音朗读的切换控制