掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 4273|回复: 11

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

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

    [LV.6]常住居民II

    发表于 2018-6-13 14:34:12 | 显示全部楼层 |阅读模式
    本帖最后由 weird 于 2018-6-13 19:38 编辑 8 i& B2 e: E# }6 J5 o% ]
      B' a( y# W3 C! Q5 c7 c
    目前GoldenDict的发音快捷键是Alt+S,但仅能播放当前词典页面的第一个本地语音,而且大部分词典还都是英音在前美音在后,不利于学习美语。# v1 x1 x1 U% A5 I. M
    幸好有专门的发音词典,如garypang的最全真人发音库/COCA6W+词组释义比例词频排名,稍微缓解了首选美音且集中比较各种读音的需求。
    8 }& ]7 z; ?$ V, U3 F( C但我一直没有找到可以用键盘快捷键实现“朗读下一个”和“朗读上一个”或类似的控制功能。, R9 q( M5 _) b8 P9 P% a1 [- T

    ( n% H& w# `# k这个需求详细来说,主要来源于以下方面:/ l. b: v+ ^2 ?4 v' U
    1、家里小孩(2岁和6岁)难以用鼠标精确控制位置,但他们却可以熟练使用键盘精确控制各种操作;$ A4 _3 }9 l  @7 |2 A# j& C6 t
    2、目前个人希望通过多听各种口音来加深印象,但每次都要在键盘和鼠标之间频繁切换,很不方便;% f7 Y& B" k& ^" b/ K. l- ~
    3、目前个人借助于AHK基本实现了绝大部分GoldenDict的全键盘操作,仅有朗读多个读音无法实现无鼠标操作。! e  O- I, ]9 Z  B" r- ~
    & M0 ~9 o2 i5 t. W/ ^
    不知道上述需求在技术上能否实现?之前看到帖子 GoldenDict精准指定发音方案,供借鉴。
  • TA的每日心情
    开心
    2018-6-18 09:03
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2018-6-13 15:26:32 | 显示全部楼层
    我在Chrome里使用Vimium插件,只要先按F,页面就会出现所有链接的快捷键,然后根据需要按相应的快捷键即可访问相应链接。
    $ W. b2 F/ I& w7 d如下所示,我在Longman官网,即可实现全键盘操控任何读音。
    4 M% u% c! v' m& m/ Z- N! s# }& [) N
    这种机制能否在GoldenDict中也实现呢?
    9 i+ @8 y7 ^9 M6 N
    - R, a: d2 b1 W! _

    本帖子中包含更多资源

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

    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 编辑
    & F7 c& }' s! g& i  a
    4 e! i7 |" M1 H) N- ]想到一个很简单的解决办法,不必编程:(shift+)Tab+回车,即可实现上下切换,若结合AHK,即可实现单个快捷键进行相应切换。
    1 b! K+ n. J( S# _8 p: a% A. z/ @( p
    但是这种解决办法不如上述GIF演示的Chrome中vimium的灵活性,只能顺序处理,只是刚好适合在置顶位置的发音词典。7 s. ?" r, W+ c
    并不能完全解决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% Q( a" \9 A; v! |% n8 s
    已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...

    8 A; F0 W! Y; I! K- @, u太牛了!有求必应的大神啊!解决了我的大问题啊。
  • TA的每日心情
    无聊
    2018-6-30 06:49
  • 签到天数: 59 天

    [LV.5]常住居民I

    发表于 2018-6-13 21:17:59 | 显示全部楼层
    garypang 发表于 2018-6-13 19:541 V+ V6 I" G6 W7 Q
    已实现快捷键循环切换发音 https://www.pdawiki.com/forum/forum.php?mod=viewthread&tid=23653 ...

    $ I, `1 e) |' ]# y7 F大大 想请教一个问题不知道可以吗) G4 p) b2 B4 J. x* y! N
    我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查询的逻辑似乎是不一样的 直接依葫芦画瓢用这个地址(https://dictionary.cambridge.org ... er-english/%GDWORD%)没有用% H& {( b' [' l
    虽然输入词条可以调出CLD 但是只打开了首页 并没有查询
    ! o$ e+ ?( I( B! g; z想请教下有办法通过这种方式调用CLD吗 我没有做py脚本的能力...本想如果能直接调用就好了
    3 l" Q( w# |  a; A5 F% N1 ?: p2 Q我是个技术盲 问了很蠢的问题多有打扰(土下座
  • TA的每日心情
    慵懒
    2018-8-25 12:29
  • 签到天数: 91 天

    [LV.6]常住居民II

    发表于 2018-6-13 21:56:52 | 显示全部楼层
    本帖最后由 garypang 于 2018-6-13 22:00 编辑
    # u" ^, c* M& {/ y7 b" q' i
    Hirutsuki 发表于 2018-6-13 21:17) W. L  N6 Z( }5 O( i5 c
    大大 想请教一个问题不知道可以吗
    7 m  Z* t5 d, {0 {我想仿照goldendict里面自带的来源网址自己添加一个(在线的CLD) 但是查 ...
    4 W" ~$ S. y9 M  j2 G4 x& d# W

    * L$ j  X/ e6 r& Z# E很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的,会影响其他词典,也拖累其他词典的查询速度,: H6 `( o- {# |/ |: W
    具体Py代码7 e, |3 ]! D/ u7 H4 I, c  N+ g
    1. import urllib3
      ; s# h- G/ x4 w* Q6 `: R
    2. from urllib.parse import quote
      - ?2 C6 f$ r  M! A+ i- {% d
    3. import io$ v# o& B" {; u& c: [
    4. import sys) }5 O) w* [' J$ L0 i6 g  d
    5. sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')
      ' n) D1 s$ Q/ X3 y! j! t

    6. % k4 {: K+ i' J1 d: o
    7. http = urllib3.PoolManager(); N( o/ a) u: _! N. r
    8. x = quote(sys.argv[1]). h! N; a, x0 M" w
    9. y = "https://dictionary.cambridge.org/dictionary/learner-english/"
      9 V' O3 p4 S9 g' J2 B  o
    10. r = http.request('GET', y+x)
      ; g; U& O: h' u4 Y. r4 Q6 }' a" I$ J
    11. data = r.data.decode('utf-8')
      1 |2 ~6 q! R) W6 n; D% }
    12. css = """<style type="text/css">" ^. G( o* m5 O+ R, Q
    13. </style>"""
      / h# \+ k' L4 x: u
    14. print('<head>\n%s\n</head>\n%s' % (css, data))
    复制代码
    6 g' j: r* x: _2 }: z/ d
    下载安装python3,0 s8 u# ?" E6 V* C1 Y
    命令行 pip install urllib3
    4 I7 O3 B4 ?* [9 n8 S0 s上述代码保存为cambridge.py文件放在电脑某个位置(以D:\根目录为例)
    7 i( L/ x2 z. L; R0 l6 c8 _1 q5 I 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. j, E' K, p' q
    很多网站都是禁止了iframe引用的,用Py脚本很容易解决,但是你得单独分个组,因为在线词典的css,js是全局的, ...
    7 C# r$ n8 }2 t- y% h4 c
    天啊 太感动了 一谢再谢
  • TA的每日心情
    郁闷
    2018-9-20 16:42
  • 签到天数: 9 天

    [LV.3]偶尔看看II

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

    本版积分规则

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

    GMT+8, 2025-5-6 12:52 , Processed in 0.022831 second(s), 23 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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