掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2863|回复: 37

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

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

    [LV.1]初来乍到

    发表于 2019-8-2 21:25:36 | 显示全部楼层 |阅读模式
    本帖最后由 jiaqiangmit2 于 2019-8-2 21:30 编辑 " _" J/ t( d' m+ }3 s

    5 R2 H2 U  B: }; e+ N各位大神: w$ L4 [! {% |5 N2 Z* z
    我在anki里已经实现提取LDOCE6真人朗读例句的制卡。现在希望能将音频文件单独放手机,睡觉和开车等时间听。问题来了:anki对媒体文件的命名是以类似于HAsh方式“乱码”命名的,从媒体文件夹里复制出来,所有的例句和单词的朗读时打乱的。能否实现:单词以其拼写命名(example.mp3),对应的几个例句音频以单词拼写加后缀的方式命名,这样,放在手机里,单词和对应例句就可以一起读了。7 {& ]. h) T6 ]  k  h) N( y- K

    ! V! G9 R1 M0 G& H# f# f$ ^3 e
    , ?9 p( ^  }  _3 l* q如图,文件名是“l乱码”的
    ; F3 j. A2 Z" Y+ {9 I7 i6 |+ R无法上任附件,名字是这样的:4 D, L  \. o+ h4 R  U4 l( m! |1 J
    [sound:-ldoce6-b0ab2fba-11b6ffb4-d84db123-b00153f3-9971952a.mp3]4 |8 C5 N. q- }0 q

    ( ]- w; q2 D4 U+ c7 G" o对应 脚本 / {1 W% l" C, t# a" p. R  O

    6 ~7 V1 a3 L, {* i" y" B------------------------------
    3 ^8 _' b+ R5 y. p. z. f- O; x/ [3 e) p& G4 u; T
    % h7 ~2 T" P; K! m$ Z
    #-*- coding:utf-8 -*-
    ) c' r9 c/ t, t8 S. D* z5 Z$ {& Aimport os
    ) E. e: ^* F. v( [7 O2 Oimport re
    ; u8 X0 {8 ^  Y. D3 J3 u7 qimport random
    & ]2 k9 t1 L7 G: U# b& I( Gfrom ..base import *
    5 T5 f& K$ d- z2 P. P  Q8 q; J; F
    # s* E: Z0 z8 y7 k% K2 S
    VOICE_PATTERN = r'<a href="sound://([\w/]+\w*\.mp3)"><img src="img/spkr_%s.png"></a>'
      Z  ?, _6 w9 ]( L# `5 e+ bVOICE_PATTERN_WQ = r'<span class="%s"><a href="sound://([\w/]+\w*\.mp3)">(.*?)</span %s>'8 v  ~  r3 V3 O6 U$ u
    MAPPINGS = [  i5 g  T" J( t: l- }
        ['br', [re.compile(VOICE_PATTERN % r'r'), re.compile(VOICE_PATTERN_WQ % (r'brevoice', r'brevoice'))]],4 r$ d7 {' B* i" X3 l& u$ v% R. l
        ['us', [re.compile(VOICE_PATTERN % r'b'), re.compile(VOICE_PATTERN_WQ % (r'amevoice', r'amevoice'))]]" O, @8 Y* z3 r& [
    ]
    ! l& v% B4 j# l4 y3 FLANG_TO_REGEXPS = {lang: regexps for lang, regexps in MAPPINGS}) v8 n& K! G- H6 J. M, r+ p
    DICT_PATH =u'E:\Anki\Dick\L6mp3.mdx'
    . T2 z2 O: x* K3 I1 Q
    ) V8 \. |3 p: B
    6 T% B* y- v) F( _  {@register([u'本地词典-LDOCE6', u'MDX-LDOCE6'])6 t  f  U1 T1 I& P( s
    class Ldoce6(MdxService):# @8 }0 @  F+ a& X9 V( [- G! I

    + M- W8 z- l9 n5 d; f+ F    def __init__(self):
    - r7 D& b2 c* b  R        dict_path = DICT_PATH- S# ?" d- Z! ~
            # if DICT_PATH is a path, stop auto detect6 C4 y: O# \7 U$ i# R" f- M! k  ]
            if not dict_path:, B2 V6 a# F& A. D
                from ...service import service_manager, service_pool, f; d& \! B. u( K7 t+ l, y+ Z$ H" q* F
                for clazz in service_manager.mdx_services:
    6 K$ U6 J. c2 R+ \) H6 z                service = service_pool.get(clazz.__unique__)
    ) d: H+ w( D5 N4 u- N                title = service.builder._title if service and service.support else u''
    ; r* T& B) n2 x& y4 w  C                service_pool.put(service)
    ( j: W  x! I+ \! O4 h- U+ V                if title.startswith(u'LDOCE6'):
    / m# l1 _2 w* k: D                    dict_path = service.dict_path
    ! c# Z0 ~; Z6 y4 w9 n  W                    break
    $ A9 H4 r: Z* a4 G( V: e3 A, \        super(Ldoce6, self).__init__(dict_path)) G2 k5 D" E/ a" ]. I' e0 a
    4 s: A$ _. @& T
        @property
    / A1 T2 B% ~6 {; \+ D    def title(self):& _- J4 }/ J5 V& i3 J
            return getattr(self, '__register_label__', self.unique)
    % f. l; m* |' b. A
    8 J! g7 B' g- K    @export('PHON')+ |! T+ _/ Y! l1 w# Q
        def fld_phonetic(self):
    7 e( N$ `4 w2 J; a) M8 D        html = self.get_html()
    * k8 n- U: Z8 `8 E" \7 v" A( D        m = re.search(r'<span class="pron">(.*?)</span>', html)
    2 ?! n& D3 a& d4 |) m+ N  d        if m:
    5 X; }# K# A6 D9 K0 c  W" O            return m.groups()[0]
    ! C) G% N# I& J: z        return ''
    0 q/ Y) B5 r' i8 d" Z9 d: [4 m- \3 R5 Z& \7 E! D- n, T
        def _fld_voice(self, html, voice):3 V3 y3 P( R  F8 J8 o* T" p
            """获取发音字段"""/ J1 O9 M; D8 y/ c: I3 ]
            for regexp in LANG_TO_REGEXPS[voice]:- W( ]0 {& M- L1 n4 j4 E6 X/ l
                match = regexp.search(html)8 d0 T, u/ _3 O: q7 D9 f0 Q0 `& B6 A
                if match:7 T- }7 l/ Q% ^, M! @' i
                    val = '/' + match.group(1), [: w& e+ ~: h. e( b6 x9 H
                    name = get_hex_name('mdx-'+self.unique.lower(), val, 'mp3')
    7 @' @# _! B5 h: E! a' W                name = self.save_file(val, name)& u% i3 W0 \# W* u9 D1 l
                    if name:0 Y8 t2 ]* o. a& A% }
                        return self.get_anki_label(name, 'audio')
    1 w0 p- x3 i7 B% a        return ''
    . G9 A5 B% i( g4 U( y- r8 ^4 O# B
    " p$ Y- \" S+ n8 n    @export('BRE_PRON')+ ?6 x+ q' J+ u
        def fld_voicebre(self):* {6 {  Q; X' |+ x$ B5 j! P7 C& w
            return self._fld_voice(self.get_html(), 'br')9 F9 m8 l$ @" K' j: z8 @5 ~
    2 u) I. [+ ~  T' r. i
        @export('AME_PRON')
    4 f! X$ ~3 v0 ^0 z8 g6 K" V  A! m4 B3 u    def fld_voiceame(self):
      R( _" |, v) w, K; V) D# ~- _        return self._fld_voice(self.get_html(), 'us')
    ' L& ^6 G3 @: T8 S$ V" G+ a
    # B( C2 S6 K" x* Z/ z# U% u0 k    def _fld_image(self, img):# s$ b7 X6 U: B& M& d
            val = '/' + img: h5 A8 m2 g8 B* M5 w* I" c
            # file extension isn't always jpg
    & M) `' T/ a# X$ I        file_extension = os.path.splitext(img)[1][1:].strip().lower()# J1 t( ?" u% J" D
            name = get_hex_name('mdx-'+self.unique.lower(), val, file_extension)8 {' _9 O- b0 ^
            name = self.save_file(val, name)
    & S% ?, T, g# a1 ?: u& B        if name:
    ! J* r3 K6 s# S$ P9 {2 z: C6 B            return self.get_anki_label(name, 'img')7 h! e9 d; j( B- B  ]% M. k
            return ''
    ' q3 g- X% m6 E% q& x6 e" k; I6 O! N2 O+ u
        @export('IMAGE')" `( `  Y7 {9 G
        def fld_image(self):6 j% c; ]0 E+ i& X
            html = self.get_html()
    * C2 E) Q) N" V        m = re.search(r'<span class="imgholder"><img src="(.*?)".*?></span>', html)- @, g% J  v: |$ u5 m$ C) l: d- a
            if m:* y+ A% S) U; e8 K
                return self._fld_image(m.groups()[0])
    % w0 v( J, H# l3 `& A8 ^% n6 I        return ''- m" c0 L: J( l% H: h+ e$ ~
    * ^( Y( x# {$ h
        @export('EXAMPLE')- d: c0 e% I- n* k8 v0 N) {: G0 J: F
        def fld_sentence(self):
    6 X- t( |6 w% G+ H9 s        return self._range_sentence([i for i in range(0, 100)])
    6 t2 d( G# |' m; g! E
    9 Z5 u$ q( K/ K7 _7 m8 r    def _fld_audio(self, audio):) h8 s7 H* `: E. G$ y
            name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')8 b8 g# E) G0 ]- x* Q* o- O
            name = self.save_file(audio, name)" M4 X- H. `, i; [% {) p* a
            if name:
    ' w4 Y$ P+ n- d6 y  Y            return self.get_anki_label(name, 'audio'); l3 h! [$ x0 @* {7 S! k
            return ''1 w- d+ u$ R1 P$ p8 N

    9 s3 P/ n0 L- U! q# C) d    @export([u'例句加音频', u'Examples with audios'])
    9 H2 C1 T4 d$ F9 j% \1 k; [    def fld_sentence_audio(self):
    : x8 r" _/ j1 `$ G        return self._range_sentence_audio([i for i in range(0, 100)])
    * O. W3 b+ l, t) ~, C$ E' o  Q+ k8 R- ]: X' Z- d
        @export('DEF')0 S& H9 r2 t( A/ X, s& X6 h
        def fld_definate(self):
    ( f7 f1 J# [2 Z, L! `) s        m = m = re.findall(r'<span class="def"\s*.*>\s*.*<\/span>', self.get_html())
    * v4 p7 F7 R" m7 L# d3 Z        if m:
    ; q9 ^+ h3 V& V8 k! H3 C& x            soup = parse_html(m[0]). ?9 j. ]/ o3 v1 }3 e0 g5 B
                el_list = soup.findAll('span', {'class':'def'})
    $ D. T/ b# X2 W0 }; S            if el_list:6 j; d; @, g+ E5 S1 T$ }
                    maps = [u''.join(str(content) for content in element.contents) ! j! U! ~, U* X4 a8 N! c! W) k
                                        for element in el_list]
    * f2 d5 O0 Y1 d( a+ b1 w2 Q. U            my_str = '') o# z* \% O8 N! [  f( a/ U$ m. t
                for i_str in maps:
    & k0 |/ z" E% g' ~                my_str = my_str + '<li>' + i_str + '</li>'
    3 I5 e" l: M3 v/ U0 c            return self._css(my_str)
    8 Y. d( f% H3 r) ^8 K4 d        return ''' ^( q1 J8 S, S! H- N& A

    - R( ]9 b$ D* R8 K" R    @export([u'随机例句', u'Random example'])0 X9 U4 C1 F* y/ a
        def fld_random_sentence(self):
    # K. v- z8 s" T: E% _- T0 V* c        return self._range_sentence()2 a4 Y3 E- C4 t" x/ W

    " U+ y- G! a" l    @export([u'首2个例句', u'First 2 examples'])+ w9 U1 H& Q7 ]% n- H* a6 j
        def fld_first2_sentence(self):
    " A7 N$ I2 ?5 J" c, G" z& D        return self._range_sentence([0, 1])
    4 J- Z! ?: s* @( k3 c% X    2 b/ [, U; f. N
        @export([u'随机例句加音频', u'Random example with audio'])
    4 }- W4 E% ?* v: E    def fld_random_sentence_audio(self):
    ; k& K; c2 X0 z& [) g; ]        return self._range_sentence_audio()  J+ n' r6 ~' `7 S8 ~3 s: E, K" N
    ' W; G" Q; {7 v8 }$ T+ I; v+ n( W
        @export([u'首2个例句加音频', u'First 2 examples with audios'])- C0 a- I8 r9 ^  [% j8 X
        def fld_first2_sentence_audio(self):( J: e; H! h3 Y( @* w( c
            return self._range_sentence_audio([0, 1])6 l4 X* \+ z, O/ D  w0 |. N$ o9 X

      V  t# Q% ~0 x7 Z: r    def _range_sentence(self, range_arr=None):
    $ Q6 A6 S' O0 E  h5 u7 E5 |" `1 }/ S' o        m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())) G$ T, d' k; L
            if m:
    " X7 W4 D0 P9 Q" y3 f; v7 s& ?; ?            soup = parse_html(m[0])! q/ h$ x2 K. N* @4 x* j
                el_list = soup.findAll('span', {'class':'example'})
    9 h% ^( V( X- z! A- G8 Y            if el_list:
    0 p, N0 c  a5 m0 x5 o0 }                maps = [u''.join(str(content) for content in element.contents)
      j+ r  f9 ^, F* @) C                                    for element in el_list]
    5 [0 w+ j, `+ [$ T6 D2 g( {" R8 w            my_str = ''$ A2 q: z5 J' Q7 a. T8 T6 @
                range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]- h8 s! q0 \9 E- r0 p3 [& k7 N1 d" S! Q
                for i, i_str in enumerate(maps):( n" a' ?& X$ A( o* z: X& S
                    if i in range_arr:7 Q+ w0 p( \* [) Y% |- J# R) }" F
                        i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
    # w" M' o' ]2 P, T) |$ n9 {8 X                    my_str = my_str + '<li>' + i_str + '</li>'- a1 j+ k0 q6 x, l
                return self._css(my_str)7 T) T. f, }7 v* e& k$ V
            return ''
    8 k6 H7 b% W# h2 W: `+ Q% J" w, l! q" z9 {
        def _range_sentence_audio(self, range_arr=None):
    ! A  X9 n# ~3 o9 \2 w& e/ E" j        m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())7 z& w" ^+ I3 d. F! b" ~4 l
            if m:
    2 L8 X, i' @3 T/ D6 u            soup = parse_html(m[0])$ b% h) d; e) i* R( N
                el_list = soup.findAll('span', {'class':'example'})
    0 i8 D) t% M5 t# C3 \" {            if el_list:
    # c4 B- J8 h: n                maps = []
    ( v& Y. D6 ]# [6 I1 ]9 Z* ?                for element in el_list:
    2 t6 j! K2 H9 p& e$ D# Z                    i_str = ''
    ) U4 w: A7 Z7 J) I, C                    for content in element.contents:
    - Q6 {; F4 ]& z) j" ^& W                        i_str = i_str + str(content)$ m) R6 N9 s; O2 ~& G4 s" J
                        sound = re.search(r'<a[^>]+?href=\"sound\:\/(.*?\.mp3)\".*</a>', i_str)2 c( c# g8 Z. y+ t/ C
                        if sound:7 ^/ n8 ]% }' Z! s) Y
                            maps.append([sound, i_str])2 F/ K: k& m5 H& v. I2 V9 s
                my_str = ''
    + j( C+ `. j2 M8 J! x; D            range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
    9 o4 ^5 N  `( y# y) x* o! N. `            for i, e in enumerate(maps):6 j0 _" Q$ M! F# \6 {4 M* f) t
                    if i in range_arr:+ {( T( }; o! {: d0 P; h
                        i_str = e[1]
    ' [1 c& f2 Q7 o! E$ `                    sound = e[0]- |! G3 y9 k: }* ^* g# ?3 A7 s4 Q
                        mp3 = self._fld_audio(sound.groups()[0])& t: _- O* e1 P. G' V9 q
                        i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
    6 _& u" n- M1 ]4 R& d) W$ P                    my_str = my_str + '<li>' + i_str + ' ' + mp3 + '</li>'
      M; j) F5 E1 t  J, s; K- Y            return self._css(my_str)
    2 l7 u/ m- Q0 K        return ''& y' D3 l- k# x- U. N4 q* H3 w/ t
    ) J; M$ m, A; c- q/ w+ j2 ~6 \
        @export([u'额外例句', u'Extra Examples'])
    ' D8 j9 ]7 j! ^4 V. P    def fld_extra_examples(self):
    7 \; k  X% T  e5 W( R        lst = re.findall(r'href="/(@examples_.*?)\">.*?<', self.get_html())
    3 x0 k! j; o! k! t        if lst:  r) B* L9 v+ R1 o5 q
                str_content = u''; n3 J1 U/ M9 T  e& B3 S
                for m in lst:0 D8 X( ~7 c4 W2 p/ l
                    content = self.builder.mdx_lookup(m)
    2 D* k: f0 U- N; L                if len(content) > 0:
    : v; C4 v! H3 e& S; Q; V$ [+ Y3 i                    for c in content:1 s' E% p: x/ T# c& l
                            str_content += c.replace("\r\n","").replace("entry:/","")$ c4 P! H; `, U( Q
                return self._css(str_content)) A7 V$ _( V& U
            return ''    ( M5 o8 D8 T) m$ M

    9 @" R+ {* ]6 @9 V% p" a7 o    @with_styles(cssfile='_ldoce6.css')
    0 S" S! f- P# ?! ]( |% h' ^5 _    def _css(self, val):
    3 y0 Y* ]1 C( d& T3 b        return val, |, Y* j1 S2 [( x: [  I/ D6 D
        ---------------------
    ) w2 f9 K5 ~+ ~: R; C6 c. Y3 J: D& K' z1 N( H/ Y3 y7 H. i
    谢谢各位0 y" A. I) l6 q: p; V- f

    3 [# j9 {' n) u' g0 M' |. W4 _0 F& S% z0 {4 `5 @, E9 j
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:04:15 | 显示全部楼层
    本帖最后由 frand 于 2019-8-5 15:07 编辑
    3 N4 Z: `5 a! E% a0 c
    jiaqiangmit2 发表于 2019-8-5 14:12
    : r# _7 b, r0 m) _1 V4 ?0 t提供下你的qq邮箱吧,太大了这里传不了
    你是想把为ANKI词库中的例句这一栏位的mp3文件改名吗?4 K7 W0 [$ j0 X( U2 `, A
    Don’t get upset. I was only teasing. [sound:mdx-ldoce6-c2c10f2b-95694d96-b8ce94c6-8b1ffc37-4cc61462.mp3]. b4 k/ \. T- L2 D6 M; T# b
    ' |9 S  a3 M. j% b1 Y& B
    He used to tease her mercilessly. [sound:mdx-ldoce6-334d38fd-e368d636-f172000c-d2e5ec9a-18e9aeee.mp3]1 |/ q" v& H- H" [( t  U
    She used to tease me about my hair. [sound:mdx-ldoce6-a00e3bdd-ca148afb-4cd3fd3d-9395d31a-64e0d996.mp3]
    . u1 X. L& {+ A. c( C6 T% ]Stop teasing the cat! [sound:mdx-ldoce6-981ee5f3-c676372b-7de3ab98-aa4bee0d-812f59cd.mp3]
    . ]" z: k; a( W( t( NI finally managed to tease the truth out of her. [sound:mdx-ldoce6-185d0830-6aa160cf-8946fa47-eed2e253-ab219916.mp3]8 A1 V7 m2 _3 Y  w9 ~( R
    She combed her hair, gently teasing out the knots. [sound:mdx-ldoce6-d27ad8ad-4cffb13f-61005ce9-2a9a9c77-aaf61afc.mp3]
    ( J9 [% w% W! T, \Don’t take any notice of Joe – he’s a big tease. [sound:mdx-ldoce6-461c2965-8cf65cc5-b940976d-84da3c42-8d0a45a5.mp3]4 {# D) n4 k+ b! l# R
    I’m sorry, it was only a tease. [sound:mdx-ldoce6-f99bee54-64e083fe-f93770cc-56235b0a-7e4114fb.mp3]8 c# A- l9 E2 ~# i4 l

    ( p! \, v2 c& U/ t4 @- ~
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 17:49:41 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 17:06
    $ K1 C" m$ ~1 d字典脚本里目前是输出音频,如果能输出并重命名,就一步到位了。当然,可能这个要求高了。只有能改音频的 ...
    - i; J2 `6 N; U" N* ~
    链接: https://pan.baidu.com/s/1GF3vZ9K3pukMlw3qbeXBig 提取码: u47p & e' z4 K# U+ }0 \7 m: D, ^
    , {: r: L0 ?5 r
    根据你发的刘毅5000 anki文件,改名输出了例句的mp3文件
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 21:22:28 | 显示全部楼层
    frand 发表于 2019-8-5 19:45
    1 n# O/ A  I/ W9 @( M; v. n- C0 [我删除了多余字段,然后导出来csv文件。再写java代码读取文件并同时改文件名。。。。 ...

    3 R4 ?; n" [1 h, g$ Y十分感谢,估计网上流传的例句库也是这样来的。我是程序小白,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- _; U; ?* k4 b) e/ v0 p4 c
    代码提取的过程中,根据单词拼写直接写文件名字不行吗?
    , }$ U6 J8 S4 `+ `
    不行。好像是anki自己生成的媒体文件都是以类似hash方式生成的。。
    4 d7 z# D/ ?5 N0 p, c5 Q! \+ ~都是这个样子:[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:026 d2 t- G4 d. v& I+ y  Y/ G
    不行。好像是anki自己生成的媒体文件都是以类似hash方式生成的。。
    3 h, h. P3 U" c9 f2 o9 E都是这个样子:[sound:-ldoce6-b0ab2f ...

    * _$ \  k3 k! H0 u" ~7 i7 Z9 P$ m把卡发给我试下
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 14:12:18 | 显示全部楼层
    frand 发表于 2019-8-5 14:04
    / s4 i( [& w" k* X3 a把卡发给我试下
    / |. y4 t4 x  t# F
    提供下你的qq邮箱吧,太大了这里传不了4 V  C3 U5 L. H& [% u  C/ c2 M* O
    9 r8 }" d- ?5 j0 u! |( l6 N
  • 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:048 G6 H. g  o1 f4 n3 \4 f
    你是想把为ANKI词库中的例句这一栏位的mp3文件改名吗?
    4 p" V, \9 s# T, z' J: {4 t' gDon’t get upset. I was only teasing. [sound:mdx ...
    " }& f' K0 R: l
    对,改成以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% X  w! G9 c5 g
    对,改成以upset 开头,或者mdx-ldoce6-upset-xxxx.这样就可以把相同单词的例句放一起。 ...
    8 h( H& X7 _) g; M; E
    所以,你只是想提取这个词库中的例句文件,并把这些文件重命名为  【单词本身】-【原始MP3名称】。9 q5 L3 K" Q. }% Z* p
    ' q/ J3 P8 K5 _1 O0 c, N$ |& Q" h
    对吧?
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 15:34:49 | 显示全部楼层
    frand 发表于 2019-8-5 15:30
    : d! _! O) y: F* ]所以,你只是想提取这个词库中的例句文件,并把这些文件重命名为  【单词本身】-【原始MP3名称】。' h1 A' n1 b6 M5 w% ~

    ! I+ p! g) R% A7 A对吧 ...
    . v/ d6 b+ v2 _) u4 x2 t7 E% x
    对,例句的音频,以便单独听。相同单词的例句都以单词开头,这样方便管理。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:45:22 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 15:340 F$ u1 X# t( R2 F  K, L( L
    对,例句的音频,以便单独听。相同单词的例句都以单词开头,这样方便管理。 ...

    # R4 T# A$ u! p通过ANKI桌面端,删除不需要的栏位,然后导出成txt文件。然后,写代码按行读取,读出本行第一个单词栏位,然后读出本行的多个MP3文件,再把MP3文件改名。
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 15:47:48 | 显示全部楼层
    frand 发表于 2019-8-5 15:45
    " n* j5 q6 r, n+ u  k2 c通过ANKI桌面端,删除不需要的栏位,然后导出成txt文件。然后,写代码按行读取,读出本行第一个单词栏位 ...
    ! v% Q- t$ h: d3 k! l, L. S  l
    不会写代码啊。。。后面的都不会
    ; m8 n* Z) R. M, {  [. r% {4 V8 @% U
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:49:58 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 15:471 U( p1 L4 ~; H+ W( o2 u# }5 s
    不会写代码啊。。。后面的都不会

    " ~, y& D  A& N' f2 y9 g你只有这一个anki文件需要处理,对吧?
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 16:01:05 | 显示全部楼层
    frand 发表于 2019-8-5 15:49) i" \6 H: O7 R% W
    你只有这一个anki文件需要处理,对吧?

    ; K; ~" ~0 |# j我的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# y8 Z" z4 x, i" _3 e+ a$ ]
    我还是不了解你要做什么。我以为只是把你发给我的词库中的MP3文件提取出来,并在更改文件名为单词+原始乱码 ...
    * S9 L8 I; j! I4 F
    是这个意思
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 17:01:59 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 16:49
    % K* {; ~# G) c) {是这个意思
    8 e* J# e8 _  `% I, ~1 _
    但是这样和字典的脚本有什么关系吗?你的ANIK文件里已经包含的单词、例句的MP3文件呀。
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 17:06:35 | 显示全部楼层
    frand 发表于 2019-8-5 17:01
    ; c' F! I- D+ n$ m9 N  X/ P但是这样和字典的脚本有什么关系吗?你的ANIK文件里已经包含的单词、例句的MP3文件呀。 ...
    1 e) E4 w' ~' S2 J. C- ?4 C( ^5 f
    字典脚本里目前是输出音频,如果能输出并重命名,就一步到位了。当然,可能这个要求高了。只有能改音频的名字就好
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 17:55:50 | 显示全部楼层
    frand 发表于 2019-8-5 17:49
    5 O& b  h3 O' q4 q* m; Q7 ^$ |链接: https://pan.baidu.com/s/1GF3vZ9K3pukMlw3qbeXBig 提取码: u47p
    # I! Q- \7 o% b" K3 ?; h6 {' `
    / ^2 W5 X' Z5 F2 d' j根据你发的刘毅5000 anki文件, ...

    7 [, @( b7 U& U: h% z谢谢,能告诉我怎么实现的吗?我会根据进度增加学习的deck
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 19:45:44 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 17:55
    0 m& a0 J% q! G% X3 y" b谢谢,能告诉我怎么实现的吗?我会根据进度增加学习的deck
    1 j7 y; R- z3 J
    我删除了多余字段,然后导出来csv文件。再写java代码读取文件并同时改文件名。。。。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 21:33:16 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 21:22
    % U: r5 K. t7 L7 T十分感谢,估计网上流传的例句库也是这样来的。我是程序小白,java那段操作,能否传授?免得每次都来麻烦 ...

    + M" c6 f6 W9 @8 F! R6 a如果你不会JAVA,那应该没法用的。而且我这个代码写的也烂,不好拿出来的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-27 14:06 , Processed in 0.078506 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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