掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3326|回复: 11

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

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

    [LV.6]常住居民II

    发表于 2018-6-13 14:34:12 | 显示全部楼层 |阅读模式
    本帖最后由 weird 于 2018-6-13 19:38 编辑
    7 [$ g2 ^3 L, y. t2 s1 I% X% p6 S: l2 R0 l5 h+ y& M
    目前GoldenDict的发音快捷键是Alt+S,但仅能播放当前词典页面的第一个本地语音,而且大部分词典还都是英音在前美音在后,不利于学习美语。
    ( X) Y* `: y# @幸好有专门的发音词典,如garypang的最全真人发音库/COCA6W+词组释义比例词频排名,稍微缓解了首选美音且集中比较各种读音的需求。
    8 E& R$ M" D( k, T1 P0 [但我一直没有找到可以用键盘快捷键实现“朗读下一个”和“朗读上一个”或类似的控制功能。* K& a+ W' R- G/ k
    1 _  K" U' ]/ ^0 W! B+ z: h) K* t
    这个需求详细来说,主要来源于以下方面:
    0 @( _7 b. Y" K1、家里小孩(2岁和6岁)难以用鼠标精确控制位置,但他们却可以熟练使用键盘精确控制各种操作;
    & \2 T5 z: I( C/ F% [: B% l4 ^2、目前个人希望通过多听各种口音来加深印象,但每次都要在键盘和鼠标之间频繁切换,很不方便;# j9 a6 }" {! S* L
    3、目前个人借助于AHK基本实现了绝大部分GoldenDict的全键盘操作,仅有朗读多个读音无法实现无鼠标操作。9 \. D4 `  Y5 A, N

      E# |+ ?9 V8 r# _0 l不知道上述需求在技术上能否实现?之前看到帖子 GoldenDict精准指定发音方案,供借鉴。
  • TA的每日心情
    开心
    2018-6-18 09:03
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2018-6-13 15:26:32 | 显示全部楼层
    我在Chrome里使用Vimium插件,只要先按F,页面就会出现所有链接的快捷键,然后根据需要按相应的快捷键即可访问相应链接。5 G8 U) d3 b# O  @' K
    如下所示,我在Longman官网,即可实现全键盘操控任何读音。* d) v1 W  v; ], B
    / }6 M4 d$ z8 l5 u  V9 r& h+ W; O
    这种机制能否在GoldenDict中也实现呢?
    - G& {6 X* m( Y( h# J) c- W& y" K- [7 `( ^5 }/ z4 ]

    本帖子中包含更多资源

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

    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 编辑
    1 t1 G1 X' l7 @1 ~/ L4 U9 E/ `4 \* j! n9 ]& }* h/ V1 @
    想到一个很简单的解决办法,不必编程:(shift+)Tab+回车,即可实现上下切换,若结合AHK,即可实现单个快捷键进行相应切换。- _3 J0 \& _6 D; }

    9 Q2 z! t  I5 a: D8 b但是这种解决办法不如上述GIF演示的Chrome中vimium的灵活性,只能顺序处理,只是刚好适合在置顶位置的发音词典。
    % |+ {  _" R6 @) E  O6 Z3 R+ c" _, H并不能完全解决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
    ' s+ a6 a7 ?1 a已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...

    9 E0 \+ {. b/ z" m& [太牛了!有求必应的大神啊!解决了我的大问题啊。
  • TA的每日心情
    无聊
    2018-6-30 06:49
  • 签到天数: 59 天

    [LV.5]常住居民I

    发表于 2018-6-13 21:17:59 | 显示全部楼层
    garypang 发表于 2018-6-13 19:54
    + s  q$ t3 \0 u已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...

    : K' t: S, T9 W- [大大 想请教一个问题不知道可以吗
    4 v- ^, [4 e1 T我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查询的逻辑似乎是不一样的 直接依葫芦画瓢用这个地址(https://dictionary.cambridge.org ... er-english/%GDWORD%)没有用+ i8 w% J4 P" t0 w
    虽然输入词条可以调出CLD 但是只打开了首页 并没有查询
    : k# I* |8 Y- W& p5 `: |想请教下有办法通过这种方式调用CLD吗 我没有做py脚本的能力...本想如果能直接调用就好了! d4 }+ S" `+ z; G/ e
    我是个技术盲 问了很蠢的问题多有打扰(土下座
  • TA的每日心情
    慵懒
    2018-8-25 12:29
  • 签到天数: 91 天

    [LV.6]常住居民II

    发表于 2018-6-13 21:56:52 | 显示全部楼层
    本帖最后由 garypang 于 2018-6-13 22:00 编辑
    0 z- t; L& u( ?: k. r, i
    Hirutsuki 发表于 2018-6-13 21:17) Q$ m5 ]* H2 [. N# Y* a4 ?
    大大 想请教一个问题不知道可以吗6 F5 ?) b; b- t- K! Y1 ^' b: H
    我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查 ...

    ; `+ V8 j" h. S$ B5 D
    + e9 {$ ]3 W/ X& v5 C1 t+ k很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的,会影响其他词典,也拖累其他词典的查询速度,+ {0 r  y6 ~  U4 Y5 J# E$ e
    具体Py代码& d! z" c" g3 L: M- b' J* ~
    1. import urllib3* u9 H: a: D% X  M% t' c, Z. ]
    2. from urllib.parse import quote
      & t. c/ a7 I5 N- E
    3. import io' {% I, z4 t$ z9 o0 X- K
    4. import sys
      8 V- s0 b. W; G7 P3 s2 {# n
    5. sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
      . f7 {8 D+ ^1 T0 V# F0 \5 p
    6. , E1 t: f5 a5 p$ p2 h
    7. http = urllib3.PoolManager()4 c' N6 z( a1 u( T1 r% w( h: u( @
    8. x = quote(sys.argv[1])
      ) D3 q; U" x: I8 D$ x- h$ c0 ?
    9. y = "https://dictionary.cambridge.org/dictionary/learner-english/"
      + I+ n8 x, ?  v
    10. r = http.request('GET', y+x)
      & Y. Q$ B2 d/ c) _/ \# u" t/ b
    11. data = r.data.decode('utf-8')
      5 s2 d0 @3 [" x8 P
    12. css = """<style type="text/css">
        A% q  t8 S7 W
    13. </style>"""
      2 N' ~7 s+ Z# ]! p! R
    14. print('<head>\n%s\n</head>\n%s' % (css, data))
    复制代码

    6 b5 t: `$ j5 c$ V下载安装python3,
    9 _# e1 w( @4 |/ N* B& m; V% x  K/ q命令行 pip install urllib3) u, G9 ~4 e" E4 R/ M, t5 v! R
    上述代码保存为cambridge.py文件放在电脑某个位置(以D:\根目录为例)
    3 r$ {5 I& p% P3 X6 {; X. v 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) ^, ?: D; b! Z. r) [" H7 G
    很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的, ...
    % T. \% S+ }: C( ?! _
    天啊 太感动了 一谢再谢
  • TA的每日心情
    郁闷
    2018-9-20 16:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

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

    本版积分规则

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

    GMT+8, 2024-5-23 19:18 , Processed in 0.066324 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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