掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3811|回复: 37

[使用求助] Anki LDOCE6 提取的例句媒体文件怎么重命名?

[复制链接]
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-8-2 21:25:36 | 显示全部楼层 |阅读模式
    本帖最后由 jiaqiangmit2 于 2019-8-2 21:30 编辑
    8 c) l. C8 ]: b" ^' b
    - M4 V- A9 A* w- q/ \3 z* f各位大神
    ! a0 u! d+ D7 ?1 K$ o* q" x我在anki里已经实现提取LDOCE6真人朗读例句的制卡。现在希望能将音频文件单独放手机,睡觉和开车等时间听。问题来了:anki对媒体文件的命名是以类似于HAsh方式“乱码”命名的,从媒体文件夹里复制出来,所有的例句和单词的朗读时打乱的。能否实现:单词以其拼写命名(example.mp3),对应的几个例句音频以单词拼写加后缀的方式命名,这样,放在手机里,单词和对应例句就可以一起读了。  ~4 ]( u6 {3 P2 b, E# R' `+ q

    1 \" ^- O% K! c# K3 @) `6 `7 N8 ^% j1 w+ i: M
    如图,文件名是“l乱码”的0 c5 b9 m" d3 z0 {1 T7 h) v
    无法上任附件,名字是这样的:
    % @' ]: R. S! r, i  I2 a; f [sound:-ldoce6-b0ab2fba-11b6ffb4-d84db123-b00153f3-9971952a.mp3]
    " G8 o7 z7 Y/ Y& W6 T0 O- z4 R6 H8 E% i3 O2 Q+ l7 f6 t3 @* r
    对应 脚本
    $ U% L/ F: ?5 y* V- w9 d8 o5 [7 A( R; c, y* a6 b  N
    ------------------------------
    ; z7 r4 i' v! [$ I# y# c6 T6 V. ?/ J1 f9 J3 ^; h, [9 ?% o
    - U6 M$ G# _4 K
    #-*- coding:utf-8 -*-: M4 M: s: N+ z8 h- Y3 F
    import os
    ) W( \2 B0 L1 ^/ X( Z# ?( c" dimport re
    6 k8 Y3 c9 l( ^8 s! z- W  |, S+ s! oimport random# y0 p- n5 p; I
    from ..base import *6 F1 X/ q  J) r+ w- N$ C

    : A1 I. L: N% `1 f, G3 E+ s1 F, F
    ( m" Y7 A2 b& c  a. T) v5 ^6 CVOICE_PATTERN = r'<a href="sound://([\w/]+\w*\.mp3)"><img src="img/spkr_%s.png"></a>'
    5 V6 S1 ]7 ?8 L/ F7 Y. J* \  P" g* eVOICE_PATTERN_WQ = r'<span class="%s"><a href="sound://([\w/]+\w*\.mp3)">(.*?)</span %s>'& l; |9 c! j8 v
    MAPPINGS = [$ }- ]) m6 H, `
        ['br', [re.compile(VOICE_PATTERN % r'r'), re.compile(VOICE_PATTERN_WQ % (r'brevoice', r'brevoice'))]],
    ( _) U7 E2 D% N+ G* Z$ u: e    ['us', [re.compile(VOICE_PATTERN % r'b'), re.compile(VOICE_PATTERN_WQ % (r'amevoice', r'amevoice'))]]% i7 ?( J; w3 h8 g* M9 i
    ]4 h* |/ B8 D* B) N4 o
    LANG_TO_REGEXPS = {lang: regexps for lang, regexps in MAPPINGS}$ O# {) O* k* f4 Q( g
    DICT_PATH =u'E:\Anki\Dick\L6mp3.mdx'
    $ N/ \5 D# `7 K% J0 G) p, Y% a; o( k
    3 x% h1 q  B& S
      C7 ^% Y# n: c% s: _( ^. t@register([u'本地词典-LDOCE6', u'MDX-LDOCE6'])' N9 D" I/ [1 o, P6 J: D( H
    class Ldoce6(MdxService):
    2 [, h2 N' G2 j( J& n0 |
    : g- v9 B! _$ x" E% X* ?+ E4 Y9 S    def __init__(self):; @- n! G+ o7 |  m  f
            dict_path = DICT_PATH3 @# T% V* P1 H+ Y* [
            # if DICT_PATH is a path, stop auto detect% W6 Z, N3 ^9 F, P
            if not dict_path:& F( _6 t2 ?+ L$ t
                from ...service import service_manager, service_pool
    0 m: M9 ^8 F2 v; x  F9 m; w            for clazz in service_manager.mdx_services:( m* T; u: q: X/ Q+ r5 J7 ^
                    service = service_pool.get(clazz.__unique__), U: {# q: ]4 R) h2 ^
                    title = service.builder._title if service and service.support else u''3 w. z  N- D+ Z- b# _7 E8 B
                    service_pool.put(service)
    - c" j  Y4 O& S5 V5 J                if title.startswith(u'LDOCE6'):' k) t- a! A/ E6 u7 k# [- G
                        dict_path = service.dict_path
    7 u% O3 A8 w* p7 x+ l6 D( s                    break
    8 ]8 Q" M5 w  O  G% }' }        super(Ldoce6, self).__init__(dict_path)
    + ^4 u) b' J! w3 b+ r  o! f3 ]
    ; a" C& X. k& y5 Q  O( x( v    @property9 v6 K6 D8 w7 Q% v
        def title(self):$ I+ e* C- e2 t
            return getattr(self, '__register_label__', self.unique): p. C6 f$ D& x0 z" ]( T/ i8 u
    ' V3 g. [; x" x& J- W
        @export('PHON')
    4 U" b5 `0 F  s! ^/ P8 x- V! f8 L    def fld_phonetic(self):
    , ~% O4 Y) ]2 C) r/ h& j7 t7 r        html = self.get_html()
    ) h1 {& @7 S9 O; C+ E3 \. \        m = re.search(r'<span class="pron">(.*?)</span>', html)6 t# \1 W6 u% v$ m+ [4 M
            if m:
    ; x( t$ l8 S# A* D9 [' S) I7 a* Q            return m.groups()[0]( N% S  ]" }. O
            return ''
    : B; ?! I& e" \6 }# o+ v; W, e- J! d+ l
        def _fld_voice(self, html, voice):
      l" P8 C. {; H' }        """获取发音字段"""5 S' q) Y# y5 b0 Z, Q
            for regexp in LANG_TO_REGEXPS[voice]:8 i; Y9 |2 b2 C, x( l, l
                match = regexp.search(html)
    ; H. X* C! e) i8 R) b            if match:
    7 D, v1 X! {. d/ j: h                val = '/' + match.group(1)
    ) G1 V3 Z( K( @1 j+ G& Q  F2 K% P: P                name = get_hex_name('mdx-'+self.unique.lower(), val, 'mp3')
    : M% X! P) P. L  R                name = self.save_file(val, name)
    4 R6 @7 C0 ~2 R5 Y                if name:
    + j0 r4 d' e8 F  F                    return self.get_anki_label(name, 'audio')
    7 y" P% G$ E! i/ _# a        return ''
    5 I7 M8 k0 _; x% O& T
    " h; Y  [3 F7 k1 H+ u- ?- n    @export('BRE_PRON')8 b4 r- d! z- s- o$ B0 {$ g+ Z
        def fld_voicebre(self):* L; u) ]4 N' `- ^
            return self._fld_voice(self.get_html(), 'br')
    3 j. ]* n; t) G+ g/ h0 z1 i6 `4 Z% F- M+ E" m
        @export('AME_PRON')$ X- ~6 b! _) N5 [" o& ]
        def fld_voiceame(self):
    7 y/ e; f' [  r) c        return self._fld_voice(self.get_html(), 'us')
    9 X- q* f$ z" K& x$ ^# i, D  b2 \& i5 i% c! x; A
        def _fld_image(self, img):
    6 P" h5 m. s' n6 Q6 f6 L) \, x. U        val = '/' + img8 M' p9 i) ~+ }2 t% }
            # file extension isn't always jpg
    * G" w( s, y$ H& ?8 R( X$ `+ e        file_extension = os.path.splitext(img)[1][1:].strip().lower()$ \9 c  {* s  P; c# W
            name = get_hex_name('mdx-'+self.unique.lower(), val, file_extension)5 `6 K; Z* n6 Q8 y0 M0 u; C
            name = self.save_file(val, name)3 N. |4 E: w/ U/ o' u7 X
            if name:  y3 h& x  _* }& y- D
                return self.get_anki_label(name, 'img')5 N1 m5 q- f3 f5 ?% S" f
            return ''  l; `$ c: q" h/ t+ W2 Z# U
    8 u' }2 P, e/ W5 K% F6 c
        @export('IMAGE'). z0 }) j$ Y, X  \' E4 b
        def fld_image(self):
    $ `  h' C6 Y* H+ Q        html = self.get_html()4 M/ N3 h0 |% x4 ?& A! ~
            m = re.search(r'<span class="imgholder"><img src="(.*?)".*?></span>', html)9 |# E( k: `9 O; f
            if m:
    8 [3 b3 w) V( l6 x6 I* k            return self._fld_image(m.groups()[0])- Q% o: A. Z, g' F! |
            return ''5 G. U- h( i4 Z! r6 H1 r

    / P# l3 s8 V$ U9 Y    @export('EXAMPLE')
    : q9 B; Y2 H6 d# I* E7 X    def fld_sentence(self):! M% X+ h) a5 r& Y
            return self._range_sentence([i for i in range(0, 100)])
    ( `& E2 D' R, Q
    4 u) m$ G3 e0 \" f1 w, r% a    def _fld_audio(self, audio):/ s3 p7 m% U% q( U6 _# W
            name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
    / i& A- U. U6 y' W+ d* Y# ?        name = self.save_file(audio, name)
    9 o) Y. w2 h. L% f  C        if name:
    0 V! D8 @" m2 y8 F: A% G3 U/ w            return self.get_anki_label(name, 'audio')
    ( h( W0 e: o  T9 W- w$ @        return ''3 _8 S1 f8 d: [  S# w) i0 R
    . m7 ~/ M3 g7 Z& y
        @export([u'例句加音频', u'Examples with audios'])$ e4 ~: O. h) o- i5 ?
        def fld_sentence_audio(self):
    3 _, \& {* ~' l9 z5 p" q5 H  F0 g        return self._range_sentence_audio([i for i in range(0, 100)])" d' v% P" b4 z2 H7 y- a/ h% G7 p. I# `
    ) x( f/ }  k& x+ U+ `% @( {
        @export('DEF')! I9 p  b7 d0 ^/ a+ S& F/ c
        def fld_definate(self):
    " r8 q" e+ L; ?        m = m = re.findall(r'<span class="def"\s*.*>\s*.*<\/span>', self.get_html())' [; {, n( i) N' }. m
            if m:
    5 v* U# o! _( q7 G0 j0 K3 B            soup = parse_html(m[0])$ p/ P+ \( o: M
                el_list = soup.findAll('span', {'class':'def'})' ]5 ]/ O0 @, Z4 }. m$ X  U% n) o# q
                if el_list:
    * t# t5 z; L% K& N- G7 u! i                maps = [u''.join(str(content) for content in element.contents) % o+ E# ]4 `. O6 _- s
                                        for element in el_list]
    2 @! |/ I' v5 x2 j% k5 ^& c- i            my_str = ''
    ' D/ M6 {: P$ P3 S7 f$ x' ]8 j            for i_str in maps:
    ( _/ U' B5 {& E" N1 H6 Z                my_str = my_str + '<li>' + i_str + '</li>'4 Y8 s- y$ T* s' h' n9 O) [- x
                return self._css(my_str)4 A( x: w0 J3 b+ n  @* K& |
            return ''8 z# H, Y- r7 d+ V  c' M

    ' m/ t8 S5 P; j  J( j$ S4 N    @export([u'随机例句', u'Random example'])
    # F- Q- i& B  b, ]- f7 p2 X8 S% h    def fld_random_sentence(self):+ X& F( L+ f- p9 c
            return self._range_sentence()
    ; z# D3 R" S) j, E4 X( q6 R9 Y0 `: ~
        @export([u'首2个例句', u'First 2 examples'])
    $ ^2 }# y8 E4 k7 c    def fld_first2_sentence(self):3 Q7 j6 n: _' D
            return self._range_sentence([0, 1])
    : c8 O/ o! o% H: m2 ~5 ?2 F   
    ) b9 J: i  u8 q& m# [' H    @export([u'随机例句加音频', u'Random example with audio'])9 x  _$ I+ _: H* S1 d/ k4 u) Z
        def fld_random_sentence_audio(self):6 |4 Y( ^- m. M$ x4 ]" I! U" ]
            return self._range_sentence_audio(): N& P( ~' k5 F: |/ |

    " B" ]. u6 l7 V- U) n    @export([u'首2个例句加音频', u'First 2 examples with audios'])1 i% d) u& k/ b& X2 t1 U
        def fld_first2_sentence_audio(self):  T8 W5 k! [: B1 Z9 R
            return self._range_sentence_audio([0, 1])8 F$ g! N! ^7 p: W

    & ?- V& T, U! R- S5 [    def _range_sentence(self, range_arr=None):1 R1 n9 G& F0 E- t* v  n$ C' G- a% o
            m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
    ' d% |5 O; P$ q1 v" A- ~+ T2 y        if m:
    0 g% k* J$ [$ v$ J            soup = parse_html(m[0])8 G. p: B  t8 @" C6 D
                el_list = soup.findAll('span', {'class':'example'})! N/ P! ^1 G' {1 ]+ A
                if el_list:9 L; X# k1 e9 c# d* h
                    maps = [u''.join(str(content) for content in element.contents)
    4 D2 o$ w; F) N                                    for element in el_list]
    7 p1 M0 a9 U/ F- j            my_str = ''
    / i  Q) N0 m- Q" }( y& ?$ |" R, [            range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
    % [% O! W: ^, a4 [* Q' Z( X            for i, i_str in enumerate(maps):
    5 G, @. q5 S0 Q9 C                if i in range_arr:
    ' Q( v2 K; F% L* v3 V) w* {                    i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()* \; d! J6 C+ O3 ?5 V
                        my_str = my_str + '<li>' + i_str + '</li>'8 [7 }' h+ g) }& {" A. }5 q$ p8 {
                return self._css(my_str)
    ; T1 s2 \; x; E% }        return ''" h. c$ E$ w+ e4 J# K; y. V* M
    ( J5 {1 q9 e2 i' F2 m
        def _range_sentence_audio(self, range_arr=None):1 x$ p# ?' S" U- B4 p
            m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())$ x! @% Q* ]+ l/ S
            if m:
    0 Z* X6 `% v% T6 A7 J2 m            soup = parse_html(m[0])
    - S7 _$ B1 c1 C0 N7 A7 P+ d            el_list = soup.findAll('span', {'class':'example'})/ i7 C( S" w$ \% j
                if el_list:! V( k: n9 y0 B7 T! U4 l* Z6 I
                    maps = []
    * b6 ?1 d5 J4 n                for element in el_list:7 k6 K' g; z( p6 F% b1 L
                        i_str = ''
    ; ~' ?7 g$ L! [6 k( `9 C8 L2 H                    for content in element.contents:
    6 `9 y! C2 A9 z% J; S8 [' y                        i_str = i_str + str(content)% W. W$ i. \5 S9 w' K9 H
                        sound = re.search(r'<a[^>]+?href=\"sound\:\/(.*?\.mp3)\".*</a>', i_str)
      {% U1 A7 Z4 A& D8 n2 h                    if sound:
    ' f6 c, J8 f+ ^3 W0 b                        maps.append([sound, i_str])$ J" y% n  Z6 W0 R; o9 m$ h
                my_str = ''# L: S7 y8 A; X8 Z* Z
                range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]! q: r: J$ n. W- Z$ D! }% j& N: q
                for i, e in enumerate(maps):8 u, b: c+ @9 p
                    if i in range_arr:* |; }8 t0 b" n# K, J( ^" I" k
                        i_str = e[1]
    6 r# r* ], ]; c& R# v' U                    sound = e[0]
    - m# V  d9 @- _6 ?2 Y) _1 m                    mp3 = self._fld_audio(sound.groups()[0])5 `; W% ]2 Q2 O$ J6 U& P
                        i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()7 A7 h4 }" z% q) O
                        my_str = my_str + '<li>' + i_str + ' ' + mp3 + '</li>'- Z+ }' t, l, m: r5 t
                return self._css(my_str)
    $ d4 A& H4 A/ r2 D  R        return ''
    + z* e% f. A' N5 e( ?; x/ \( z; Z& {
        @export([u'额外例句', u'Extra Examples'])
    4 Q6 u7 N$ o3 M) l1 X    def fld_extra_examples(self):4 E  f$ G( k2 b$ P; o) D8 ]
            lst = re.findall(r'href="/(@examples_.*?)\">.*?<', self.get_html()); Y" o# @4 H4 b( t4 f
            if lst:. J3 G) q- j' @, {
                str_content = u''
    ' W/ Q( c9 f  M4 T            for m in lst:
    4 S3 e0 H2 G/ d4 N0 C/ K- |                content = self.builder.mdx_lookup(m)
    3 k: B( c+ M) c3 Z; {                if len(content) > 0:
    4 g& V6 O" x" K5 H3 g: H                    for c in content:1 y, E! }$ g$ N' d
                            str_content += c.replace("\r\n","").replace("entry:/","")3 c4 M' t$ R4 M  y; V
                return self._css(str_content)
    - ]% K3 M, n; ?0 G        return ''   
    - j/ u* ^  o0 V2 X3 K. n$ ]6 Z( H2 c& N
    2 M: G- Z! p3 X( W) M" G    @with_styles(cssfile='_ldoce6.css')
    ( r6 j) w' k( B6 z    def _css(self, val):2 ^. h, B. h# n) o  X* i; [
            return val
    7 p& q) _( p7 E6 D! P( ^3 ?( }    ---------------------, T; P& U$ i6 @  K# A; H# p

    / ~8 J  }' W, V( c7 y) f% q谢谢各位
    3 G; d& g1 O7 k7 \. X) q
    - N( b1 y/ d$ X2 W% l1 y" i* [; ^& l9 F7 s+ w* {8 {, y/ w% {2 U2 b
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:04:15 | 显示全部楼层
    本帖最后由 frand 于 2019-8-5 15:07 编辑 / W  a0 h$ Q: f/ E# g
    jiaqiangmit2 发表于 2019-8-5 14:12
    : p) ~3 A  ^# c: B& y1 Y  R; X提供下你的qq邮箱吧,太大了这里传不了
    你是想把为ANKI词库中的例句这一栏位的mp3文件改名吗?
    # t# z4 I' V0 c: u5 QDon’t get upset. I was only teasing. [sound:mdx-ldoce6-c2c10f2b-95694d96-b8ce94c6-8b1ffc37-4cc61462.mp3], N1 _4 B8 i4 B* z% J7 T

      w0 ?3 i, H' w: F, O, U; DHe used to tease her mercilessly. [sound:mdx-ldoce6-334d38fd-e368d636-f172000c-d2e5ec9a-18e9aeee.mp3]  F- S5 x- }. }2 r" H  d
    She used to tease me about my hair. [sound:mdx-ldoce6-a00e3bdd-ca148afb-4cd3fd3d-9395d31a-64e0d996.mp3]
    8 a; i7 h4 {$ O/ aStop teasing the cat! [sound:mdx-ldoce6-981ee5f3-c676372b-7de3ab98-aa4bee0d-812f59cd.mp3]6 l/ c) m" W' b
    I finally managed to tease the truth out of her. [sound:mdx-ldoce6-185d0830-6aa160cf-8946fa47-eed2e253-ab219916.mp3]
    . m: u. V0 d% I- i7 ~She combed her hair, gently teasing out the knots. [sound:mdx-ldoce6-d27ad8ad-4cffb13f-61005ce9-2a9a9c77-aaf61afc.mp3]
    $ ]4 l# L/ p( i; G; dDon’t take any notice of Joe – he’s a big tease. [sound:mdx-ldoce6-461c2965-8cf65cc5-b940976d-84da3c42-8d0a45a5.mp3]
    5 l* ^$ C' T8 n" \3 u: L* m* cI’m sorry, it was only a tease. [sound:mdx-ldoce6-f99bee54-64e083fe-f93770cc-56235b0a-7e4114fb.mp3]$ S$ L! Z( z6 `9 b: J- `7 h

    - d, f. B9 ?3 `6 d9 X  a" h8 B
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 17:49:41 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 17:06
    , h; J. A* Z, q, F$ G0 x字典脚本里目前是输出音频,如果能输出并重命名,就一步到位了。当然,可能这个要求高了。只有能改音频的 ...
    # x& [5 ], b* N, ?: `% @
    链接: https://pan.baidu.com/s/1GF3vZ9K3pukMlw3qbeXBig 提取码: u47p : e4 w  z4 V3 u2 `+ B
    : `( U# e( W7 O
    根据你发的刘毅5000 anki文件,改名输出了例句的mp3文件
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 21:22:28 | 显示全部楼层
    frand 发表于 2019-8-5 19:451 {4 j$ n% J& X! @/ |& p8 Y& [
    我删除了多余字段,然后导出来csv文件。再写java代码读取文件并同时改文件名。。。。 ...
    + d) r! a; E7 P) u( x
    十分感谢,估计网上流传的例句库也是这样来的。我是程序小白,java那段操作,能否传授?免得每次都来麻烦你。同时我也想把单词的读音也导出来跟例句排一起
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-4 18:47:20 | 显示全部楼层
    顶。其实我只是需要以单词拼写命名单词和例句,以变分类
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 09:05:26 | 显示全部楼层
    顶,求大神支招
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 10:05:33 | 显示全部楼层
    代码提取的过程中,根据单词拼写直接写文件名字不行吗?
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 14:02:18 | 显示全部楼层
    frand 发表于 2019-8-5 10:05
    * q6 n8 ]; H7 K  X4 S代码提取的过程中,根据单词拼写直接写文件名字不行吗?
    # X% z9 m5 M$ j8 X+ _) B6 Y2 |: K
    不行。好像是anki自己生成的媒体文件都是以类似hash方式生成的。。# d; I0 f# B0 D' x+ L; j
    都是这个样子:[sound:-ldoce6-b0ab2fba-11b6ffb4-d84db123-b00153f3-9971952a.mp3]
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 14:04:57 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 14:02
    5 O+ R% F, q  H  w) E$ s- j不行。好像是anki自己生成的媒体文件都是以类似hash方式生成的。。
    / a1 X4 p! Z0 l- I9 C& _# D1 _都是这个样子:[sound:-ldoce6-b0ab2f ...

    3 \5 G2 R1 ]: `; Z2 H" r# e把卡发给我试下
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 14:12:18 | 显示全部楼层
    frand 发表于 2019-8-5 14:04
    0 j/ m. U' t3 Q6 k5 |/ P把卡发给我试下
    $ U+ P$ X6 _% Y) k6 t3 l
    提供下你的qq邮箱吧,太大了这里传不了
    7 `+ I8 E; S' n  ~2 u  a. X, K& K
    ! j5 I  D* J+ Z4 H$ c% Y
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 14:19:22 | 显示全部楼层
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 15:17:30 | 显示全部楼层
    frand 发表于 2019-8-5 15:04: U9 [. L; G  e# l
    你是想把为ANKI词库中的例句这一栏位的mp3文件改名吗?
    " n. d5 y9 V$ N& G2 V# D5 wDon’t get upset. I was only teasing. [sound:mdx ...
    " _8 A) d5 I0 C+ d
    对,改成以upset 开头,或者mdx-ldoce6-upset-xxxx.这样就可以把相同单词的例句放一起。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:30:45 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 15:17& u, k4 f  j. T1 A  F' v4 x
    对,改成以upset 开头,或者mdx-ldoce6-upset-xxxx.这样就可以把相同单词的例句放一起。 ...
    2 `' }0 H/ M+ h8 b+ z/ Y
    所以,你只是想提取这个词库中的例句文件,并把这些文件重命名为  【单词本身】-【原始MP3名称】。- z" Q  D  R" E9 {/ _5 A; c
    9 [# n: ~/ l0 P
    对吧?
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 15:34:49 | 显示全部楼层
    frand 发表于 2019-8-5 15:30
    4 _8 I/ b( l* I6 b( `所以,你只是想提取这个词库中的例句文件,并把这些文件重命名为  【单词本身】-【原始MP3名称】。
    ; h" I' k2 {& @! b2 R& j- O- q, G9 |; T
    对吧 ...

    1 u9 m" T2 ]( F# z1 K- b' d7 A: R对,例句的音频,以便单独听。相同单词的例句都以单词开头,这样方便管理。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:45:22 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 15:34- p1 s9 c! M2 _$ B: @
    对,例句的音频,以便单独听。相同单词的例句都以单词开头,这样方便管理。 ...
    5 K8 }6 b& U% U! C" {
    通过ANKI桌面端,删除不需要的栏位,然后导出成txt文件。然后,写代码按行读取,读出本行第一个单词栏位,然后读出本行的多个MP3文件,再把MP3文件改名。
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 15:47:48 | 显示全部楼层
    frand 发表于 2019-8-5 15:453 P0 ~- Q* d0 a! ]- s0 p
    通过ANKI桌面端,删除不需要的栏位,然后导出成txt文件。然后,写代码按行读取,读出本行第一个单词栏位 ...

    1 I; b' Q: d- S; D  n- G不会写代码啊。。。后面的都不会
    ) M) q8 o0 G6 t& j2 i# L
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:49:58 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 15:47
    . ~3 q  N# l% |: w不会写代码啊。。。后面的都不会
    3 s9 _9 v* X/ ?9 I: t# _
    你只有这一个anki文件需要处理,对吧?
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 16:01:05 | 显示全部楼层
    frand 发表于 2019-8-5 15:49
    7 Y: |9 w; h& Z你只有这一个anki文件需要处理,对吧?

      F$ ~8 p  \) m- }, z3 a) A我的anki用的是Ldcoe6的词典,这个词典有例句发音。anki一个deck差不多1000词。我希望每次能根据自己的deck里的单词表把这些例句抓出来听。对应字典的脚本发在我贴子第一楼。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 16:39:58 | 显示全部楼层
    我还是不了解你要做什么。我以为只是把你发给我的词库中的MP3文件提取出来,并在更改文件名为单词+原始乱码文件名
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 16:49:55 | 显示全部楼层
    frand 发表于 2019-8-5 16:39+ e) x( ]' v! y4 |; b0 u" b9 b. O
    我还是不了解你要做什么。我以为只是把你发给我的词库中的MP3文件提取出来,并在更改文件名为单词+原始乱码 ...

    4 n. N8 L7 o7 Q' r# _( n  o1 Y/ L" Q是这个意思
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 17:01:59 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 16:49
    : t' H* y0 C* j# }3 D+ }# C是这个意思

    8 T+ y- ?5 _9 f但是这样和字典的脚本有什么关系吗?你的ANIK文件里已经包含的单词、例句的MP3文件呀。
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 17:06:35 | 显示全部楼层
    frand 发表于 2019-8-5 17:01
    . Z5 f2 U" ]- ?& m: u但是这样和字典的脚本有什么关系吗?你的ANIK文件里已经包含的单词、例句的MP3文件呀。 ...
    / u) `/ ~9 W7 I
    字典脚本里目前是输出音频,如果能输出并重命名,就一步到位了。当然,可能这个要求高了。只有能改音频的名字就好
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 17:55:50 | 显示全部楼层
    frand 发表于 2019-8-5 17:49: B$ E9 [0 X' j% F. x, o
    链接: https://pan.baidu.com/s/1GF3vZ9K3pukMlw3qbeXBig 提取码: u47p
    1 b: l4 x# \, b+ b; j  Z) Q/ C& v( |/ {5 i9 ?6 p2 g3 X
    根据你发的刘毅5000 anki文件, ...

    1 i( f+ W8 ?" M$ O, S8 Z/ f谢谢,能告诉我怎么实现的吗?我会根据进度增加学习的deck
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 19:45:44 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 17:55
    8 R) }6 e7 k. k1 T  m+ N谢谢,能告诉我怎么实现的吗?我会根据进度增加学习的deck
    & N3 R* E2 ~% G! S" ?& t, z$ `7 E4 ^
    我删除了多余字段,然后导出来csv文件。再写java代码读取文件并同时改文件名。。。。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 21:33:16 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 21:22
    : s6 E: }& X( p6 l$ q# r; U十分感谢,估计网上流传的例句库也是这样来的。我是程序小白,java那段操作,能否传授?免得每次都来麻烦 ...

    ( V5 K) Z; a0 d% |7 @. ?如果你不会JAVA,那应该没法用的。而且我这个代码写的也烂,不好拿出来的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2025-7-10 04:00 , Processed in 0.030479 second(s), 23 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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