V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
yoiteshaw
V2EX  ›  分享创造

写了一个纠正英语口语发音的脚本分享

  •  
  •   yoiteshaw · 63 天前 · 1493 次点击
    这是一个创建于 63 天前的主题,其中的信息可能已经有所发展或是发生改变。
    周末简单实现了一个脚本,地址在: https://github.com/YoiteShao/RecordingCorrection
    原帖: https://www.v2ex.com/t/1054965

    使用到的库是:
    ffmpeg,
    whisper(OpenAI)
    torch

    实现的功能如下:
    1.剪切标准音频
    2.录音你的朗读
    3.比较标准音频和你朗读音频的区别,并且标注哪些地方你读错了。

    例如:
    ”Mary, I hope [you're -> you/are] packed and ready to leave. [Yes,/I'm -> Years/are] packed, but not quite ready. I can't find my passport. [Your -> ] -
    [ -> You] passport? That's the one thing you [mustn't -> must/not] leave behind. I know. I haven't lost it. I've packed [it,/but -> it./But] I [can't -> cannot] remember [which/bag. -> what/it/is.]“

    中括号里的即为你念错的地方。


    我的使用方法:
    因为我日常都是去找四六级的听力去练习朗读,因此我下载了全套的历年四六级听力。(也因此需要剪切,每次用 ffmpeg 命令行也挺麻烦的)。
    1.该脚本会先针对你剪好的标准音频进行语音识别,得到文本打印下来。
    2.然后你只需要对着这个文本朗读即可。
    3.最后分析出你哪些地方读错了,哪些地方读的是正确的。

    我的初衷是想做完整朗读中每个单词提供发音百分比置信度的功能,但是当我做到一半的时候,开始写什么 MFCC 音频提取、DTW 算法匹配的时候,才意识到我其实是把简单问题复杂化了。

    日常生活中,大部分人都是不敢说,以及熟悉的单词不会念,能开口实际上就赢了大半,不至于说要每个单词都非常标准发音,这样反而会很奇怪。于是我觉得只要能大声朗读出能让机器识别出来的句子,就能够实现我的目标。至于需要聚焦到更细节的每个单词的严苛发音,我觉得随便一个背单词的 app 就能做到。

    我之前用 chatGPT 对话练习过,但是后面发现很多时候我并不是缺乏对话,而是缺乏开口念英语的连贯性、自然性。我单词都念错了,AI 还能跟我继续唠嗑。读书的时候英语早读课过于注重单个单词的记忆而忽略了完整文章的朗读。如果仅仅是需要找个对话练习,用 chatGPT 就够了。我个人认为这个脚本解决的痛点也是在于:连贯对话的口语纠错。


    本脚本也是为了抛砖引玉,肯定有体验更好的方案,希望有大佬如果有兴趣可以开发出来让我使用使用,我这个确实有点简陋。
    11 条回复    2024-07-08 13:32:18 +08:00
    ooolooo
        1
    ooolooo  
       63 天前
    我之前用的是 https://www.speechace.com/ , 确实很有用很强大音节纠错很详细,也帮了我很多,我没有好好坚持学习,曾经我也希望用他们的 API 做个 app ,后来看了报价放弃了这个想法,反正偶尔还会用,因为只有网页,不太方便
    AI 出来好久也没有看到对应的可以纠正发音的实现,虽然我觉得肯定能实现,也许是我没有发现对应的 AI 产品,
    现在我用的是 TalkFace app , 有发音纠正的功能,我觉得已经很强了,app 也方便使用

    OP 行动力很强,一天就做出来, 非常值得学习
    hanqian
        2
    hanqian  
       63 天前
    现在 chatgpt 的语音对话本质上还是通过文字实现的,不是真正的 voice in voice out ,单词念错肯定还是有影响。等 gpt4o 的 multimodal 语音对话开放,唠嗑体验应该会好很多
    yoiteshaw
        3
    yoiteshaw  
    OP
       63 天前
    @ooolooo 是的,我搜了半天实际上也就我原帖里那两个产品用起来比较正常。有了 chatGPT ,生产力确实提升很多,我一开始找的本地语音识别模型都很烂,还得问 chatGPT 有什么推荐,才比较快完成了。
    ooolooo
        4
    ooolooo  
       63 天前
    我还是非常喜欢 speecAce 的发音矫正学习, 非常系统,完整丰富,不会像看现在到处视频学习一样太散
    junyee
        5
    junyee  
       62 天前
    我记得学生时字母 G 读成 "句义", 现在网上视频主大多读成 '撅/最" 了.
    求指导...
    stonedongdong
        6
    stonedongdong  
       62 天前
    李笑来的那个项目中有一个 enjoy 的应用,能对比看标准音频以及朗读音频的波形图,不知道对楼主有没有帮助。
    我的疑问其实跟二楼的一样,speak to text 再对比标准的文本,标注出哪些地方错了。但是有时候发音不准确也没有偏差那么大,机器也能识别出来,就如你所说的,可能说错了但是 gpt 也能正常理解回答
    yoiteshaw
        7
    yoiteshaw  
    OP
       62 天前
    @stonedongdong 试用了一下太惊喜了,成熟度高太多,最有用的应该是它的发音评估功能,但是也是收费的,而且找了文档没找到收费标准,只说了按使用量。我测了一下平均一句是 0.004 刀,那么一篇短文可能需要 0.1 刀左右?大概一块钱。

    和 chatGPT 聊天,你说错词的时候,它也能继续和你说下去,会给我一种“我在白练”的感觉。它带给我的好处就是减少英语开口的怯场而已,而不是我需要在说的过程中知道我哪个单词错了。比如我之前说了半天的 college 实际上一直是 courage 的音,练习了很久感觉都是鸡同鸭讲。

    当然了 chatGPT 可以看口语聊天的文字记录,但是我觉得还是配合着来比较好,比如对话练习+朗读练习。
    yoiteshaw
        8
    yoiteshaw  
    OP
       62 天前
    @stonedongdong 查了一下 enjoy 所使用的 api 服务是微软的,收费确实没有中间商赚差价:


    发音评估(韵律、语法、词汇、主题)
    Real-time: $0.30 /小时/功能
    Batch (Continuous Language identification, Diarization): Included in Standard/Custom (no extra charge)


    看来是没有白嫖的途径了。苦
    stonedongdong
        9
    stonedongdong  
       62 天前
    @yoiteshaw 所以我感觉关于 chatGPT 对话,更多练习的是听力和自己组织表达上的一些东西,对于单词读音、口音这种(有时候甚至语法错误也不行)并不能直接纠正。关于“说错词 GPT 还能继续回复” 可以搞个 prompt 试试,我之前使用文字对话的形式,让 GPT 在回复的你最开头,先 review 一遍自己的话有没有问题或者更地道的表达,然后再继续回复你的问题。这样就相当于 GPT 把你说的话再(正确)地说一遍,自己也能识别一下。下面这两句就是个例子,第一行是 GPT 更正我的话(如果我的话没问题,他也会重复一遍),第二句是对应的回复
    [You should say "I'm a little tired."]
    I understand. Anything specific making you feel tired?

    在推上看到挺多人推荐的 esla speak 跟 speechace 有点像
    yoiteshaw
        10
    yoiteshaw  
    OP
       62 天前
    @stonedongdong 试过让它 repeat ,但是她总是忘,时间长了那个 session 会因为太长变卡,偶尔会报错。
    不知道现在 4o 解决了没有。

    其实如果愿意付费,网上还是特别多方案的。
    UWoodman
        11
    UWoodman  
       61 天前
    感觉方向有些偏差,纠正发音的问题效率最高的方法其实应该是 Shadowing,应该用文字转音频,口语阅读文字,对比和音频的差异,OP 这种方式更多的还是练会话,也就是发音不影响语义的情况下的沟通能力.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1192 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:58 · PVG 07:58 · LAX 16:58 · JFK 19:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.