构建自己的听力词库(python实现语音识别单词与停顿分割)

想要构建自己的听力词库,把听力材料中不需要的词去掉,根据我提供的变化的词单截出来单词语音来练习。

使用windows,pycharm。

环境配置

  • speech_recognition:为了达到语音识别(只适用于wav文件)
  • pocketsphinx: 可选,为了使用speech_recognition的recognize_sphinx()音频识别,使用Google的就不需要安装这个
  • pydub:为了实现别的音频格式转wav
  • ffmpeg:为了使用pydub来转
pip install SpeechRecognition
pip install pydub

ffmpeg:
官网:http://www.ffmpeg.org/
现在不像以前有那么多选项了,一个包就搞定:https://blog.csdn.net/qq_39382753/article/details/115939665
然后注意安装要重启cmd或者pycharm才生效配置

pocketsphinx:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pocketsphinx
搜索pocketsphin
下载对应的版本到本地即可(python 3.7就下cp37)
然后直接pip install 你下载的.wheel就可以啦

数据格式转化

def convert_mp3_to_wav(filename,savename):
	'''
    将MP3格式转成wav格式
    :param filename: x.mp3文件
    :param savename: x.wav文件
    :return: sound
    '''
    from pydub import AudioSegment
    sound = AudioSegment.from_mp3(filename)
    sound.export(savename, format="wav")
    return sound

语音识别

参考https://www.cnblogs.com/zhe-hello/p/13273523.html,
我比较了recognize_google()和recognize_sphinx() ,google会识别更准

def recognize_word(filename):
    '''
    打印wav文件的转写结果
    :param filename: wav文件
    :return: 转写结果 str
    '''
    import speech_recognition as sr
    r = sr.Recognizer()
    with sr.AudioFile(filename) as source:
        audio = r.record(source)  # read the entire audio file
    res = r.recognize_google(audio)  # 注意要挂梯子哦
    res1 = res.split(" ")
    result=" ".join(res1)
    print(result,type(result))
    return result
Google识别结果:draft version version rewrite rewrite revise revise

Google的可以说全对

sphinx识别结果:draft version we write we write you guys you guys 

sphinx的结果看得我一脸问号

将语音分割成单词或词组

参考https://blog.csdn.net/wangqianqianya/article/details/89605298

def split_to_chunks_by_slience(sound,savedir='word_wav'):
    from pydub.silence import split_on_silence
    import os
    if not os.path.exists(savedir):
        os.mkdir(savedir)
    chunks = split_on_silence(sound,
                              # must be silent for at least half a second,沉默半秒
                              min_silence_len=430,
                              
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值