掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 2926|回复: 37

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

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

    [LV.1]初来乍到

    发表于 2019-8-2 21:25:36 | 显示全部楼层 |阅读模式
    本帖最后由 jiaqiangmit2 于 2019-8-2 21:30 编辑 % `, H2 {: Q1 @" x+ @
    ! z5 x4 z" ^+ o* b8 B
    各位大神: L0 e% y. p6 }* }3 T; q% T1 }
    我在anki里已经实现提取LDOCE6真人朗读例句的制卡。现在希望能将音频文件单独放手机,睡觉和开车等时间听。问题来了:anki对媒体文件的命名是以类似于HAsh方式“乱码”命名的,从媒体文件夹里复制出来,所有的例句和单词的朗读时打乱的。能否实现:单词以其拼写命名(example.mp3),对应的几个例句音频以单词拼写加后缀的方式命名,这样,放在手机里,单词和对应例句就可以一起读了。
    2 ]2 E& @) p; j+ Q  [5 g1 Q; U$ I3 n2 Z
    $ f1 D; R8 [4 N/ Q
    如图,文件名是“l乱码”的/ L& s/ H3 }8 ~8 x
    无法上任附件,名字是这样的:, P3 }7 ~. _  s5 R0 Y
    [sound:-ldoce6-b0ab2fba-11b6ffb4-d84db123-b00153f3-9971952a.mp3]
    & g2 ]# l& n  G0 H+ X) n
    " T* k# @% ]% @4 E对应 脚本
    2 c: ~7 g$ ]7 O  v; s) T
    ; e1 z% w4 I! Z2 n$ x7 O- G------------------------------) D! N: F7 F* P3 T. w  s( H

    2 @8 l. c' E' \
    2 C/ B7 L* x) T, X5 g5 T" _( J0 t#-*- coding:utf-8 -*-
    - v. J& ?9 j6 ~7 P) ~: bimport os; L7 i( p, e( T# l6 \8 F9 |
    import re
    ) [4 k  y$ x5 j9 Z; [6 a- Wimport random
    9 L* ^. |8 j2 m& Q' ufrom ..base import *
    2 i) i* f& k7 h7 T7 [
    5 N  o6 T# Y" ^3 M7 W7 l% T
    9 s. _7 ?% S  e" W7 s$ oVOICE_PATTERN = r'<a href="sound://([\w/]+\w*\.mp3)"><img src="img/spkr_%s.png"></a>'4 v4 K/ R+ [( h: ]8 B/ N. ?
    VOICE_PATTERN_WQ = r'<span class="%s"><a href="sound://([\w/]+\w*\.mp3)">(.*?)</span %s>'& m' I  A$ E$ w6 t% Y8 m  }
    MAPPINGS = [& K( f+ o- O* S0 w
        ['br', [re.compile(VOICE_PATTERN % r'r'), re.compile(VOICE_PATTERN_WQ % (r'brevoice', r'brevoice'))]],
    & O+ v1 z" Y. [9 i9 b$ _/ a    ['us', [re.compile(VOICE_PATTERN % r'b'), re.compile(VOICE_PATTERN_WQ % (r'amevoice', r'amevoice'))]]4 o, ~; V. ^5 z) B( A8 X* f; L
    ]6 q3 H: A7 n' Q0 r
    LANG_TO_REGEXPS = {lang: regexps for lang, regexps in MAPPINGS}6 {  q3 R- b" u
    DICT_PATH =u'E:\Anki\Dick\L6mp3.mdx'" ?8 `- \3 A5 t" y
    & w" x9 |4 k6 a7 h
    ' \, k, j; s' `; M' e
    @register([u'本地词典-LDOCE6', u'MDX-LDOCE6'])  U# C8 j' }! T* h
    class Ldoce6(MdxService):
    & e7 Z& `  I4 H4 V6 g
    / Y9 b/ s  p6 y' q) `- O" n/ L+ s8 G    def __init__(self):' M5 k6 l2 u* w! c7 {
            dict_path = DICT_PATH" }% s- m9 @7 Y
            # if DICT_PATH is a path, stop auto detect9 S2 p' Q5 s2 g5 Z' r* M- m$ L
            if not dict_path:1 e4 `+ l1 f2 t+ |# z' _
                from ...service import service_manager, service_pool
    0 B* m5 ~! w4 {" s            for clazz in service_manager.mdx_services:
    " S5 U# v% {# {8 T' s1 O                service = service_pool.get(clazz.__unique__)
    $ l/ I/ [& Z' O  ^8 |                title = service.builder._title if service and service.support else u''
    " b8 A# Q( U+ g% C( m& f- T                service_pool.put(service)
    7 o1 \3 T' u' s4 W                if title.startswith(u'LDOCE6'):
    . P& O8 x7 t, A                    dict_path = service.dict_path
      L( B4 y: f, S: J# c                    break
    3 X9 P5 a0 m! s0 A. g        super(Ldoce6, self).__init__(dict_path)
      n3 y$ E. H% n7 ^, i( e' v" [  j# }* h1 ~! A
        @property9 O4 J' c- K: _& l$ m5 O9 A) T! Z7 ?
        def title(self):8 c; _3 s$ h: {: o
            return getattr(self, '__register_label__', self.unique)
    0 e; [4 ^8 o7 F8 W
    ( D  X2 ?, n/ {; a0 I( k. }    @export('PHON')3 }& g: s1 b' S  q( y+ d
        def fld_phonetic(self):
    1 c! o6 X8 t6 t# g' N        html = self.get_html()8 |2 @# C9 F% |) G1 _/ j
            m = re.search(r'<span class="pron">(.*?)</span>', html)
    : @' ~1 X6 L( e. g) S; m  r        if m:4 A  e$ Q/ ?) w3 e& y
                return m.groups()[0]5 R. [$ f7 V# ?8 J. p+ e
            return ''# t% i+ w0 f- m5 o% e

    9 Y$ W- F# K2 e2 b, }$ W6 r6 q    def _fld_voice(self, html, voice):, @# L6 X9 [# k- A! Z+ f- U
            """获取发音字段"""/ T( V! _& Y: x9 l( U
            for regexp in LANG_TO_REGEXPS[voice]:
    0 n: n$ G1 u- ~' ]7 A4 W+ Y" @            match = regexp.search(html). K2 n+ K5 n. d( Q% U! v
                if match:
    , i7 ?; U$ j# C; h" Y* M# r8 x                val = '/' + match.group(1)6 X! U1 A3 M# \  c
                    name = get_hex_name('mdx-'+self.unique.lower(), val, 'mp3')9 _1 S( m: g, M. u  t0 Y% B( _! f/ u
                    name = self.save_file(val, name)4 x" ]$ e5 N( M# p1 ]
                    if name:
    0 b- g' V8 d- ?3 l4 q4 O6 @9 u! D                    return self.get_anki_label(name, 'audio')
    ! O" o+ I8 X/ @8 S8 c        return ''! j' ?! _3 M. M2 k+ m% Z* l
    5 `1 ^" y: a" C6 B- \: c
        @export('BRE_PRON')1 I& T: n7 T: r: X0 Q- ]/ H
        def fld_voicebre(self):3 c- e  T- G. w; a3 w1 I
            return self._fld_voice(self.get_html(), 'br')
    0 C& H5 g" B% m8 h, W7 V
    / d" U! @% o' Q2 z$ M: X0 u    @export('AME_PRON')
    6 _& B# S3 [/ A    def fld_voiceame(self):
    " W# g3 \* s' Z% y  N; r        return self._fld_voice(self.get_html(), 'us')
    : w3 E* e: C  [" F1 y0 f( n7 m3 D2 e: _& h! s
        def _fld_image(self, img):/ i& r/ R; j& c3 t$ F* O! f* h
            val = '/' + img. ?) P9 S0 k* {
            # file extension isn't always jpg
    ( n' v, Y7 {. y6 t        file_extension = os.path.splitext(img)[1][1:].strip().lower(); o0 x' G) ~7 |6 X
            name = get_hex_name('mdx-'+self.unique.lower(), val, file_extension)! i/ p8 g2 F; R
            name = self.save_file(val, name)
    9 @% Z1 ]5 c; S& \) \        if name:7 P! H( Y7 _& E0 H9 H: D9 v% P# X
                return self.get_anki_label(name, 'img')
    ; H; A7 y, _* K. s8 h6 s( _! k        return ''' B) f& U8 e) b$ _1 u
    & W% z. d& b7 u8 H  A. I6 E* E/ E; s8 t
        @export('IMAGE')
    . W9 o8 ~8 J, d6 K9 O% n    def fld_image(self):
    3 [4 F+ U& P5 e0 K" u        html = self.get_html()1 q9 h3 Z8 d' k, s7 T! Q
            m = re.search(r'<span class="imgholder"><img src="(.*?)".*?></span>', html)
    $ K7 U2 z7 B# j        if m:" A9 K# e. W2 e5 i
                return self._fld_image(m.groups()[0])5 r0 q! ]1 F* N3 i+ |: w
            return ''
    & E2 [0 m) m( ~& l) i
    " v9 u' u  {. d' y9 z9 K    @export('EXAMPLE')3 N# w2 Z' U* D9 y0 m1 j1 ^7 F$ o2 {
        def fld_sentence(self):% R) n5 U; l. M; N7 a* l
            return self._range_sentence([i for i in range(0, 100)])
    & N$ c/ s/ j- K) k
    6 v# |- N8 o6 A9 w    def _fld_audio(self, audio):# b+ ]  f1 P/ `: N; {2 S, I" a3 R
            name = get_hex_name('mdx-'+self.unique.lower(), audio, 'mp3')
    + M) U8 ^# U1 ^% p        name = self.save_file(audio, name)' y6 J1 H* n% u4 ]  }; _$ d; U
            if name:1 ^9 n1 S; U) @& w
                return self.get_anki_label(name, 'audio')8 u, Q$ L9 s# y. K
            return ''" u  N4 c# P$ ?7 }3 Z! [+ q

    ' v1 @0 o1 y, z) e- c( M, q    @export([u'例句加音频', u'Examples with audios'])
    & G9 v: m3 G' x6 r; q( e) U    def fld_sentence_audio(self):
    ( c( V6 f3 B( Z        return self._range_sentence_audio([i for i in range(0, 100)])
    0 v0 m  f0 J2 ~9 x4 `
      w% y+ T  b9 U- Q+ L    @export('DEF')% n  \  ?0 @- J1 E" w- P
        def fld_definate(self):4 P" ~1 e+ L8 Q! V1 n* O: h/ `
            m = m = re.findall(r'<span class="def"\s*.*>\s*.*<\/span>', self.get_html())
    ) O% p- D- O7 Y  ?$ V/ c. n4 a        if m:+ U/ E, s- u5 I, f3 j) D
                soup = parse_html(m[0]). j4 ~0 z+ T% O0 e1 Z8 v
                el_list = soup.findAll('span', {'class':'def'})
    ' W& G8 \4 z& Q/ Y            if el_list:( y" @7 [9 C9 I- u& z$ Q, x
                    maps = [u''.join(str(content) for content in element.contents)
    9 w9 f3 D0 B$ G: X                                    for element in el_list]9 {+ F3 {" _3 a8 Q( W/ K2 h
                my_str = ''/ q! B' w8 v: ~/ V$ f
                for i_str in maps:
    ) }( @1 t1 E  W/ {1 `, t2 L% W                my_str = my_str + '<li>' + i_str + '</li>'1 W7 H! Z. P/ j0 P
                return self._css(my_str)/ b/ A1 @  g1 B- |% D7 T* }
            return ''
    , n5 A2 p3 `1 e2 v* b1 v5 E+ {( f
        @export([u'随机例句', u'Random example']), w3 ?( W4 d. }' ]
        def fld_random_sentence(self):# a0 y) |" V% ^  p
            return self._range_sentence()
    ( e" P5 K- s6 e* h' d% K& ^/ s, V) `# ^( @+ R) K
        @export([u'首2个例句', u'First 2 examples'])
    . P4 ~/ y- D9 F; P    def fld_first2_sentence(self):
    * k$ }6 @1 _% ~" L5 z/ \, r! }2 U        return self._range_sentence([0, 1])" K4 J/ S$ W  E  s* ~- t
        6 N  d4 v8 r9 f* ^) G; ~. q; A& ~
        @export([u'随机例句加音频', u'Random example with audio']), e+ f, V9 `$ J8 ?. ]7 r
        def fld_random_sentence_audio(self):
    7 V1 G9 r0 @3 T6 A9 y8 f% f        return self._range_sentence_audio()
    : \6 k+ U0 m/ w
    " }9 j4 P6 D, g$ E) _9 t: y  o    @export([u'首2个例句加音频', u'First 2 examples with audios'])
    ! b9 x  P* B7 ~/ o1 J% ?    def fld_first2_sentence_audio(self):: r- S- C4 K  w# d
            return self._range_sentence_audio([0, 1])0 ^8 B5 O& i* F" v5 h- E9 a, W

    4 W, v5 z7 k; U# L, v' w    def _range_sentence(self, range_arr=None):
    " e' `; l8 j- `        m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())3 D. P& M2 u; `0 n% D
            if m:
    . Z- |8 P" Q' x1 L1 H- k; F            soup = parse_html(m[0])7 U& P7 [$ n/ C. H  M
                el_list = soup.findAll('span', {'class':'example'})
    3 W7 e" B. a3 f" m) \            if el_list:
    1 v4 q8 Q5 i. X" x/ U                maps = [u''.join(str(content) for content in element.contents) ) u& G+ x- J9 q2 W
                                        for element in el_list]8 G  o4 L1 H1 ^" r0 D. l# E" |. [
                my_str = '', {0 S( h- V5 ^  \0 [; H7 `  c
                range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
      R  d* y; w8 b8 P            for i, i_str in enumerate(maps):3 D8 U3 E% ?2 l' }) j, _: \
                    if i in range_arr:2 z& _& {0 \5 @1 D3 V
                        i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()
    7 n" x# |% s. ^# H$ p! E5 B1 @                    my_str = my_str + '<li>' + i_str + '</li>', R% V  Q7 {( H  i
                return self._css(my_str)/ n, t+ t1 s* u
            return ''' ^0 X- h0 v- ]" ]1 V
    4 _3 ]/ L; M# T. |  O
        def _range_sentence_audio(self, range_arr=None):$ [( {. G. R4 g( K8 [* c
            m = re.findall(r'<span class="example"\s*.*>\s*.*<\/span>', self.get_html())
    4 ~" C" g2 a4 }- j, ^0 L. N+ R        if m:4 j7 y8 ?( f# q
                soup = parse_html(m[0])* O7 J9 Y8 ?2 r2 d: [) l
                el_list = soup.findAll('span', {'class':'example'})
    . i" X+ p) H0 N3 {' s            if el_list:
    " i/ t( X. e5 z, x  F+ I                maps = []
    8 O+ c) S- K* i! i  n, ]3 I$ A% Q7 F                for element in el_list:& n& y- m6 b4 b$ D2 [
                        i_str = ''
    8 M# c1 j7 x# L7 E9 f: C                    for content in element.contents:
    0 E5 T$ V6 W6 I6 E) ~+ U. V                        i_str = i_str + str(content)$ V" S1 A3 p) @0 I# O. I  Q9 |
                        sound = re.search(r'<a[^>]+?href=\"sound\:\/(.*?\.mp3)\".*</a>', i_str), i* j9 _5 ^" l; ~6 B
                        if sound:% K1 P# s# B; x% U+ Q8 J* J1 F3 Y
                            maps.append([sound, i_str])
    . d/ K& i2 p, I0 r            my_str = ''$ ~$ d5 i/ X  U+ {- {
                range_arr = range_arr if range_arr else [random.randrange(0, len(maps) - 1, 1)]
    - P7 K' a. ]8 o2 W            for i, e in enumerate(maps):9 j2 X/ n$ h* l7 Q
                    if i in range_arr:" X3 r) {9 U4 ]/ a8 I+ {" E9 ?- c2 M% A; K
                        i_str = e[1]
    + o0 R( g8 `$ l  F. Z7 ^. B$ e5 f% s                    sound = e[0]
    ( x: ~4 a+ z, D                    mp3 = self._fld_audio(sound.groups()[0])
    . P9 b9 m* V/ j! [                    i_str = re.sub(r'<a[^>]+?href=\"sound\:.*\.mp3\".*</a>', '', i_str).strip()1 N- Z( Z& U" j' G8 d9 w
                        my_str = my_str + '<li>' + i_str + ' ' + mp3 + '</li>'* G* b" V! z, E( h# W" H
                return self._css(my_str)
    7 [8 D8 r+ ^: Q0 \7 R9 I( k        return ''
    0 v9 Y, r& b) l  D3 F7 Q- g+ c2 O' E0 Y
        @export([u'额外例句', u'Extra Examples'])9 ~: [$ g) {6 ]
        def fld_extra_examples(self):
    % A) n; ~6 f% W: T& s1 ~        lst = re.findall(r'href="/(@examples_.*?)\">.*?<', self.get_html())
    ' s( e( T( W: C5 b7 p. e        if lst:7 r& v5 r$ ^+ f+ w) u, P
                str_content = u''
    8 B! D& i0 E9 o3 Y* O+ [, c6 }            for m in lst:
    & K/ h) A) E) N# \+ ]9 v                content = self.builder.mdx_lookup(m): N1 o5 \+ h+ `) }/ D% [
                    if len(content) > 0:
    " ?- f+ J" S" C6 R# I& X7 O" Z                    for c in content:; v7 s8 S; G+ L( U
                            str_content += c.replace("\r\n","").replace("entry:/","")
    5 E% f: G) \! D, o6 x3 x* ~, F% ~2 m            return self._css(str_content), O8 `7 ~0 z2 M* h, J# i+ _) S* d" ^
            return ''    / N, i" K* @* y$ L- c

    ! i$ C+ T1 x- B3 ]2 ?' Y2 J$ `    @with_styles(cssfile='_ldoce6.css')% d  M6 U! x1 g- g7 ^
        def _css(self, val):
    0 X+ j8 l  V9 ^1 N        return val+ i6 h5 }3 B' n) M
        ---------------------
    $ U( n5 M+ Z: m, @9 i5 ?5 q# I! n1 x0 f! T: L0 `3 k) U9 i" k
    谢谢各位- R% d4 w8 o; U; u1 u' M5 {% T5 y

    , w+ {8 p' @( n" W* `7 w& H; ]& p+ p; _
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:04:15 | 显示全部楼层
    本帖最后由 frand 于 2019-8-5 15:07 编辑 + E4 ^, b0 B& d/ I, x8 J4 I' `
    jiaqiangmit2 发表于 2019-8-5 14:12
    7 c! D& w& H8 ^  J' s提供下你的qq邮箱吧,太大了这里传不了
    你是想把为ANKI词库中的例句这一栏位的mp3文件改名吗?, _9 u8 `  `% F0 a3 B% u
    Don’t get upset. I was only teasing. [sound:mdx-ldoce6-c2c10f2b-95694d96-b8ce94c6-8b1ffc37-4cc61462.mp3]" Y: e+ L# V5 T+ V( X/ q9 H! F2 p

    7 T/ T8 N9 [2 q0 f3 R$ x! i: G1 NHe used to tease her mercilessly. [sound:mdx-ldoce6-334d38fd-e368d636-f172000c-d2e5ec9a-18e9aeee.mp3]& D6 @$ s' E- e/ r
    She used to tease me about my hair. [sound:mdx-ldoce6-a00e3bdd-ca148afb-4cd3fd3d-9395d31a-64e0d996.mp3]
    2 i# k- z2 x1 m6 o8 z. RStop teasing the cat! [sound:mdx-ldoce6-981ee5f3-c676372b-7de3ab98-aa4bee0d-812f59cd.mp3]) i7 N0 [; |4 H! e
    I finally managed to tease the truth out of her. [sound:mdx-ldoce6-185d0830-6aa160cf-8946fa47-eed2e253-ab219916.mp3]* ?5 o9 x1 u+ v" R, R
    She combed her hair, gently teasing out the knots. [sound:mdx-ldoce6-d27ad8ad-4cffb13f-61005ce9-2a9a9c77-aaf61afc.mp3]. e  a/ I  r1 f) @( J- m/ M+ d6 e
    Don’t take any notice of Joe – he’s a big tease. [sound:mdx-ldoce6-461c2965-8cf65cc5-b940976d-84da3c42-8d0a45a5.mp3]( d$ A  C- |4 q% _3 a: T$ x
    I’m sorry, it was only a tease. [sound:mdx-ldoce6-f99bee54-64e083fe-f93770cc-56235b0a-7e4114fb.mp3]1 P# n5 k/ Y7 u+ p! i
    9 |3 L/ j  {# d, Q. [+ b
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 17:49:41 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 17:06
    " `( @, a1 N2 m字典脚本里目前是输出音频,如果能输出并重命名,就一步到位了。当然,可能这个要求高了。只有能改音频的 ...

    0 U+ L' z5 B9 ^& `4 `/ G* N+ K3 P9 ?链接: https://pan.baidu.com/s/1GF3vZ9K3pukMlw3qbeXBig 提取码: u47p
    8 f$ ^9 Z8 j7 V3 {9 i
    2 K, o. y: `5 y! ]: X# U根据你发的刘毅5000 anki文件,改名输出了例句的mp3文件
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 21:22:28 | 显示全部楼层
    frand 发表于 2019-8-5 19:45
    + a$ D4 q" j. t; n. J( g, A  w我删除了多余字段,然后导出来csv文件。再写java代码读取文件并同时改文件名。。。。 ...

    & H) j; R3 y& w7 N6 }0 [十分感谢,估计网上流传的例句库也是这样来的。我是程序小白,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:050 A. G1 Q7 R/ F4 r# S
    代码提取的过程中,根据单词拼写直接写文件名字不行吗?

    $ @2 C6 l1 H7 Y# A, V不行。好像是anki自己生成的媒体文件都是以类似hash方式生成的。。
    0 _8 L, J- E* l) s7 h) L/ s. g0 C都是这个样子:[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. h  O% e. b) H; v5 g
    不行。好像是anki自己生成的媒体文件都是以类似hash方式生成的。。
    6 c1 V5 `2 O& H都是这个样子:[sound:-ldoce6-b0ab2f ...

    * U. H8 v! [) M/ j' y" Z7 L% W: }把卡发给我试下
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 14:12:18 | 显示全部楼层
    frand 发表于 2019-8-5 14:04: x2 l( J2 |  K
    把卡发给我试下
    6 J* X: V: }0 k; Q" p1 `
    提供下你的qq邮箱吧,太大了这里传不了
    8 ]6 U" e- O" L7 m8 C  Y7 S3 L+ F( L
  • 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
    7 L) _" F! m, v9 b$ Q7 @* |你是想把为ANKI词库中的例句这一栏位的mp3文件改名吗?* X- K8 I6 ?5 j
    Don’t get upset. I was only teasing. [sound:mdx ...

    ! _% O9 ^. v) g: @( Q; E1 j对,改成以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" g" j$ V  A. b3 p
    对,改成以upset 开头,或者mdx-ldoce6-upset-xxxx.这样就可以把相同单词的例句放一起。 ...
    3 ~$ {2 ?# |8 D' b: s% Q
    所以,你只是想提取这个词库中的例句文件,并把这些文件重命名为  【单词本身】-【原始MP3名称】。, u8 L% w6 K7 `# g' S
    ) Y! W/ e/ v* `3 _# j
    对吧?
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 15:34:49 | 显示全部楼层
    frand 发表于 2019-8-5 15:30  v9 v7 H( q! `/ ]- T; ]0 O! r' B* x3 M
    所以,你只是想提取这个词库中的例句文件,并把这些文件重命名为  【单词本身】-【原始MP3名称】。
    4 z; o- f* O& B+ Q* S* `. I" C( K# b; U( n) d5 U* R- T9 h7 a
    对吧 ...

    ! M$ _% D7 `( y7 Q" }0 x# r$ n对,例句的音频,以便单独听。相同单词的例句都以单词开头,这样方便管理。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:45:22 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 15:34& _; ~' g5 E! F' }
    对,例句的音频,以便单独听。相同单词的例句都以单词开头,这样方便管理。 ...

    # [* t1 h1 x! K7 ^% y8 [4 _通过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
    ! b2 H4 P4 d7 O& {6 k4 f2 |通过ANKI桌面端,删除不需要的栏位,然后导出成txt文件。然后,写代码按行读取,读出本行第一个单词栏位 ...

    * y; D5 S0 a# Y' B5 f7 T8 V! ?2 P不会写代码啊。。。后面的都不会: K$ ~: C, a2 R) l, `& _
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 15:49:58 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 15:47
    8 v3 i% N: o' G2 S% D* u0 o不会写代码啊。。。后面的都不会

    * ~$ _: m  B) t2 N. A6 t你只有这一个anki文件需要处理,对吧?
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 16:01:05 | 显示全部楼层
    frand 发表于 2019-8-5 15:495 O- c% k/ U7 F3 m  Q
    你只有这一个anki文件需要处理,对吧?
    6 _3 M6 A" i0 x/ b
    我的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! o- w3 _9 q9 o9 T# y3 P3 w
    我还是不了解你要做什么。我以为只是把你发给我的词库中的MP3文件提取出来,并在更改文件名为单词+原始乱码 ...

    4 x: w" F3 p* w* d- R+ J是这个意思
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 17:01:59 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 16:49
    * s$ r& b- s7 }+ \% A! ?是这个意思

    ! c$ N% ~& D1 m! C' J但是这样和字典的脚本有什么关系吗?你的ANIK文件里已经包含的单词、例句的MP3文件呀。
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 17:06:35 | 显示全部楼层
    frand 发表于 2019-8-5 17:013 {( C" k+ {  J9 w
    但是这样和字典的脚本有什么关系吗?你的ANIK文件里已经包含的单词、例句的MP3文件呀。 ...
    * B2 T8 `! n" x* S  I; I. d
    字典脚本里目前是输出音频,如果能输出并重命名,就一步到位了。当然,可能这个要求高了。只有能改音频的名字就好
  • TA的每日心情
    开心
    2019-9-4 10:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2019-8-5 17:55:50 | 显示全部楼层
    frand 发表于 2019-8-5 17:49
    $ w8 e4 W4 I4 ]2 z# h* E9 {6 X链接: https://pan.baidu.com/s/1GF3vZ9K3pukMlw3qbeXBig 提取码: u47p
    * I9 X* N" ^, H) Q3 v
    9 v! F$ p' p! F, s* b根据你发的刘毅5000 anki文件, ...

    ( M! o; h) b/ Y& H- {7 J谢谢,能告诉我怎么实现的吗?我会根据进度增加学习的deck
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 19:45:44 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 17:55
    ! ~4 ?) j- j# {* ]谢谢,能告诉我怎么实现的吗?我会根据进度增加学习的deck
    % I+ ~2 Y( A- D& L5 {( N
    我删除了多余字段,然后导出来csv文件。再写java代码读取文件并同时改文件名。。。。
  • TA的每日心情
    开心
    2020-4-7 17:48
  • 签到天数: 201 天

    [LV.7]常住居民III

    发表于 2019-8-5 21:33:16 | 显示全部楼层
    jiaqiangmit2 发表于 2019-8-5 21:22
    6 E" i0 D. c" v% d% y% H4 R  u' V. O十分感谢,估计网上流传的例句库也是这样来的。我是程序小白,java那段操作,能否传授?免得每次都来麻烦 ...
    / V, M2 b# M/ i: A8 C2 t8 N
    如果你不会JAVA,那应该没法用的。而且我这个代码写的也烂,不好拿出来的
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-5-29 08:41 , Processed in 0.069655 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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