掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3314|回复: 11

[使用求助] 用快捷键实现GoldenDict多个语音朗读的切换控制

[复制链接]
  • TA的每日心情
    开心
    2018-6-18 09:03
  • 签到天数: 110 天

    [LV.6]常住居民II

    发表于 2018-6-13 14:34:12 | 显示全部楼层 |阅读模式
    本帖最后由 weird 于 2018-6-13 19:38 编辑 * s' _& [3 P" @# p/ X) U: j
    8 Y  L. S$ ^* I' W/ l  o
    目前GoldenDict的发音快捷键是Alt+S,但仅能播放当前词典页面的第一个本地语音,而且大部分词典还都是英音在前美音在后,不利于学习美语。( k; [4 A3 u$ d8 i2 o0 d
    幸好有专门的发音词典,如garypang的最全真人发音库/COCA6W+词组释义比例词频排名,稍微缓解了首选美音且集中比较各种读音的需求。5 t: `' E$ {1 p7 S, Z; _1 }
    但我一直没有找到可以用键盘快捷键实现“朗读下一个”和“朗读上一个”或类似的控制功能。' R, n9 ]# \2 ^9 E

    % p& Q5 _0 [6 \$ a% m0 u4 t3 B* l这个需求详细来说,主要来源于以下方面:0 x+ {# o+ l" X: k
    1、家里小孩(2岁和6岁)难以用鼠标精确控制位置,但他们却可以熟练使用键盘精确控制各种操作;, E4 g1 P2 [3 K0 F) r' i
    2、目前个人希望通过多听各种口音来加深印象,但每次都要在键盘和鼠标之间频繁切换,很不方便;
    , K) T( G$ V9 P3、目前个人借助于AHK基本实现了绝大部分GoldenDict的全键盘操作,仅有朗读多个读音无法实现无鼠标操作。
    2 S$ I) \9 i* K
    3 m) i9 z9 i, U不知道上述需求在技术上能否实现?之前看到帖子 GoldenDict精准指定发音方案,供借鉴。
  • TA的每日心情
    开心
    2018-6-18 09:03
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2018-6-13 15:26:32 | 显示全部楼层
    我在Chrome里使用Vimium插件,只要先按F,页面就会出现所有链接的快捷键,然后根据需要按相应的快捷键即可访问相应链接。- `' V; t& t, Y* K
    如下所示,我在Longman官网,即可实现全键盘操控任何读音。: g5 O% e# i) X' x1 F# k. Y

    4 r) [6 k* Y( @$ J这种机制能否在GoldenDict中也实现呢?
    * s+ g7 z/ l5 S5 N8 n7 L/ E4 |2 O: H; ?- b' `5 o- U% W: _$ ~; P2 t

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x
  • TA的每日心情
    奋斗
    2018-11-10 00:38
  • 签到天数: 346 天

    [LV.8]以坛为家I

    发表于 2018-6-13 15:35:11 | 显示全部楼层
    autoHotKey应该是可以实现你的功能,不过编程的难度可能对你来讲有点大,得先利用html的xml层面的解析对应一下随后的发音喇叭的具体位置.估计小孩儿也未必能看得懂对应的英文释义,字典层面.你要是如果仅仅想听听不同的发音的话,建议你装个语音引擎,找全各种口音的声音文件就是了.或者好像还有个专门的天南海北的发音网站,写个py的脚本,网上临时爬一下.不过可能对没搞过开发的,门槛有点高.
  • TA的每日心情
    擦汗
    2018-8-19 10:30
  • 签到天数: 24 天

    [LV.4]偶尔看看III

    发表于 2018-6-13 17:29:08 | 显示全部楼层
    很想了解,但是不知道怎么弄法,希望大神们多分享些简易操作链接。。
  • TA的每日心情
    开心
    2018-6-18 09:03
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2018-6-13 17:44:00 | 显示全部楼层
    本帖最后由 weird 于 2018-6-13 18:06 编辑
    - D" e: G7 Y$ P& V: \  c, \8 [
    7 U/ i% P# G, }% r. }) f# J想到一个很简单的解决办法,不必编程:(shift+)Tab+回车,即可实现上下切换,若结合AHK,即可实现单个快捷键进行相应切换。4 _5 Y: r6 Z0 J* m  ^* y3 Z
    + B7 K# w+ K+ ~" N6 c/ z. E
    但是这种解决办法不如上述GIF演示的Chrome中vimium的灵活性,只能顺序处理,只是刚好适合在置顶位置的发音词典。
    2 q+ I; x! z$ r3 q5 d并不能完全解决GoldenDcit官方开发论坛提出的这个灵活性需求:https://github.com/goldendict/goldendict/issues/756
  • TA的每日心情
    慵懒
    2018-8-25 12:29
  • 签到天数: 91 天

    [LV.6]常住居民II

    发表于 2018-6-13 19:54:16 | 显示全部楼层
    已实现快捷键循环切换发音 https://www.pdawiki.com/forum/fo ... hread&tid=23653

    点评

    已经失效了,楼主能更新一下链接吗?  发表于 2020-5-29 18:42
  • TA的每日心情
    开心
    2018-6-18 09:03
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2018-6-13 19:57:32 | 显示全部楼层
    garypang 发表于 2018-6-13 19:54
    5 j/ G4 p7 l" k1 C% O已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...
    . u$ [8 Q8 H  g( e
    太牛了!有求必应的大神啊!解决了我的大问题啊。
  • TA的每日心情
    无聊
    2018-6-30 06:49
  • 签到天数: 59 天

    [LV.5]常住居民I

    发表于 2018-6-13 21:17:59 | 显示全部楼层
    garypang 发表于 2018-6-13 19:54
    + D) u2 S5 P2 a; c% ~, g+ T8 c已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...
    ; ~$ g' Q- F. t% K6 Q9 Z8 ]
    大大 想请教一个问题不知道可以吗; |* C" w- y! f! D0 F* ^
    我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查询的逻辑似乎是不一样的 直接依葫芦画瓢用这个地址(https://dictionary.cambridge.org ... er-english/%GDWORD%)没有用
      E5 ]' r9 x" T$ m/ h虽然输入词条可以调出CLD 但是只打开了首页 并没有查询$ c) o0 t* e- S2 w! V
    想请教下有办法通过这种方式调用CLD吗 我没有做py脚本的能力...本想如果能直接调用就好了
    " ]' O/ J- ~- s& |  `' J( C7 E我是个技术盲 问了很蠢的问题多有打扰(土下座
  • TA的每日心情
    慵懒
    2018-8-25 12:29
  • 签到天数: 91 天

    [LV.6]常住居民II

    发表于 2018-6-13 21:56:52 | 显示全部楼层
    本帖最后由 garypang 于 2018-6-13 22:00 编辑
    ! f! |( d" R+ a, J
    Hirutsuki 发表于 2018-6-13 21:17
    0 S& t' V% c1 s. b大大 想请教一个问题不知道可以吗
    / w/ ]( d1 }9 ~) G7 }% i我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查 ...
    + V& r& n2 X- J! ]
    " Y- n7 h, y+ g* s$ ]1 ~) p
    很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的,会影响其他词典,也拖累其他词典的查询速度,6 O; c6 J( Z, o  M: P
    具体Py代码9 K4 r3 `; ], d; ~$ h
    1. import urllib32 @2 Z8 j7 i) F6 m1 M6 s
    2. from urllib.parse import quote
      & W% K& x! h/ U  p. l
    3. import io7 o1 q  ]6 G! m0 E( O
    4. import sys
      3 w( J9 r& |" M9 y5 X8 ?1 M
    5. sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
      7 n& O: S9 B% a5 Q7 N9 T/ \( n- n
    6. . K! v' e& P; t6 E! z4 H3 b
    7. http = urllib3.PoolManager()- K) ]% w! t. y- J
    8. x = quote(sys.argv[1])
      % z5 X8 m/ Y, q
    9. y = "https://dictionary.cambridge.org/dictionary/learner-english/"
      + C( R, M& T% w  Z
    10. r = http.request('GET', y+x): k2 P4 |" @  ~. ]$ h
    11. data = r.data.decode('utf-8')1 X6 x" {, @. _7 ~" Q% o; l' Z
    12. css = """<style type="text/css">+ r7 E6 b# e0 X/ n& M
    13. </style>"""8 z$ x$ p9 A0 P, t- Z
    14. print('<head>\n%s\n</head>\n%s' % (css, data))
    复制代码
    0 H" Z9 F* a8 M  m
    下载安装python3,
    $ s2 N6 U  w& f, ]命令行 pip install urllib3; F2 w9 X& j/ B. `
    上述代码保存为cambridge.py文件放在电脑某个位置(以D:\根目录为例), z4 G- x  A* i( d! N4 h
    goldendict 词典来源->程序 类型选html 命令行键入python D:\cambridge.py %GDWORD%   勾上已启用
  • TA的每日心情
    无聊
    2018-6-30 06:49
  • 签到天数: 59 天

    [LV.5]常住居民I

    发表于 2018-6-13 22:45:54 | 显示全部楼层
    garypang 发表于 2018-6-13 21:56
    % K1 S; n  C# |2 @# p很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的, ...

    4 A4 r" G$ t* U8 D+ d. }% P天啊 太感动了 一谢再谢
  • TA的每日心情
    郁闷
    2018-9-20 16:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2018-6-14 10:43:56 | 显示全部楼层
    大神真多,我连词典都没弄清楚,你们就已经在研究编程了。。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-5-12 10:57 , Processed in 0.058855 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表