Python语音转文字、音频切割、语音识别

简介: 不知道你有没有录过自我介绍的视频,尤其是那种加上PPT播放的长时间视频可能因为说错一句话就得重来,又或者因为思考而暂停时间太久又得重来,以至于弄了两个小时才做好五分钟的视频


不知道你有没有录过自我介绍的视频,尤其是那种加上PPT播放的长时间视频

可能因为说错一句话就得重来,又或者因为思考而暂停时间太久又得重来,以至于弄了两个小时才做好五分钟的视频

所以就像为了答辩一样,为了让演讲流利不卡壳一遍过,不停的熟读稿子,又或者提前花费大量时间把稿子写好,在录屏的时候对着读

image.png

但是光写稿子也要花费了大量的时间啊

所以我想到的方法就是先对着照PPT说一遍并录下来,再将用代码自动将音频自动提取出来转成文字,然后第二遍正式录制视频的时候看着生成的讲稿就不用因为不熟练而卡壳,同时也省去了一个个码字的时间消耗

所以为了更好的去录制视频,这里将上述过程全部用代码流程化分享给大家

   视频提取音频

   音频频率转化、音频切割

   音频转成文字

1视频提取音频

如果你练习时是录的视频,那需要将视频里的语音提取出来,方便后期操作

当然这个过程目前在各个视频剪辑软件里都可以一键分割,例如剪映、必剪、Pr等等

但是当任务量增加的时候,操作就显得非常浪费时间,而用Python的话3行代码就可以提取出来,就算任务量增加最多再加个循环即可

代码如下

from moviepy.editor import AudioFileClip
# 导入视频
my_audio_clip = AudioFileClip("一行玩Python/1012 视频转文字/11.mp4")
# 提取音频并保存
my_audio_clip.write_audiofile("一行玩Python/1012 视频转文字/11.wav")

2音频转文字

提取音频之后就要把音频转成文字了,目前市面上有很多方式都可以快速的将视频里的音频内容转成文字

   科大讯飞、知意等付费平台

   剪映、Pr等剪辑如案件生成字幕

   百度云、腾讯云等国内接口

   GOogle、IBM、Bing等国外接口

   自己造轮子,语音识别训练

   自己一边听一边打字

虽然说有这么多方法可以去实现这个需求,但任务量增长后,想不花钱,又想不花时间造轮子,最好的办法就是用现成的接口

百度接口使用

申请百度接口

如果想用百度接口来批量处理,需要

百度语音API地址:https://cloud.baidu.com/doc/SPEECH/index.html

from aip import AipSpeech
""" 你的 APPID AK SK """
APP_ID = 'xxx'
API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'
SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'
client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
# 读取文件
def get_file_content(file_path):
    with open(file_path, 'rb') as fp:
        return fp.read()
# 识别本地文件
result = client.asr(get_file_content('音频.wav' % i), 'wav', 16000, {
    'dev_pid': 1537  # 默认1537(普通话 输入法模型),dev_pid参数见本节开头的表格
})
print(result['result'])

如果你恰巧是用mac录的音频,那就得对音频进行降频处理

因为百度接口只能识别16 kHz的音频,而mac录的是48 kHz的音频,当然用ffmpeg重采样一下就可以

import ffmpeg
ffmpeg.input('输入音频.wav').output('输出音频.wav', ar=16000).run()

如果的你音频比较长,但是百度短语音识别接口支持1分钟以内的音频,这时候需要对音频进行分割处理

from pydub import AudioSegment
from pydub.utils import make_chunks
#blues文件30s
audio = AudioSegment.from_file("voice.wav", "wav")
size = 30000  #切割的毫秒数
chunks = make_chunks(audio, size)  ##将文件切割为59s一块
for i, chunk in enumerate(chunks):
    ##枚举,i是索引,chunk是切割好的文件
    chunk_name = "voice{0}.wav".format(i)
    print(chunk_name)
    ##保存文件
    chunk.export(chunk_name, format="wav")

然后重采样、剪切好的音频循环调用百度API接口就可以完成了~

exe

当然,也有前辈利用百度API直接写成了一个exe来使用

只需要在刚才百度智能云注册申请账号即可使用image.png

3最后

而现在互联网的大趋势是视频内容,了解视频相关的应用对于做内容也非常有帮助

之前有前辈分享过如果做短视频创作秘籍,就是把互联网上最火的内容下载个1、200个,然后拿来翻拍,毕竟火过的内容很大概率还会再火

当然有些人会向我过去一样质疑,这tm不是抄袭嘛,但是很多内容本来就可以同主题多形式的,例如别人拍的炒蛋炒饭,那你同样可以翻拍炒蛋炒饭,这有什么不好的吗

而批量下载抖音之前介绍过,现在又可以把这些的视频内容提取出来,下一步就可以进行批量翻拍,离实现一个小目标岂不是越来越近了

技术永不眠,下期见~


相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
13天前
|
机器学习/深度学习 自然语言处理 API
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程
如何使用阿里云的语音合成服务(TTS)将文本转换为语音?本文详细介绍了从注册账号、获取密钥到编写Python代码调用TTS服务的全过程。通过简单的代码示例,展示如何将文本转换为自然流畅的语音,适用于有声阅读、智能客服等场景。
60 3
|
1月前
|
数据处理 Python
Python在音频传输中的应用实例解析
Python在音频传输中的应用实例解析
|
1月前
|
存储 编解码 API
分享一个 Python 处理音频的库
分享一个 Python 处理音频的库
35 2
|
2月前
|
编解码 Python
Python如何给视频添加音频和字幕
Python如何给视频添加音频和字幕
|
2月前
|
人工智能 小程序 API
文字转语音神器+Python编程搞定语音报时小程序
文字转语音神器+Python编程搞定语音报时小程序
|
2月前
|
API 语音技术 开发者
用python实现文字转语音的5个较好用的模块
这篇文章介绍了五个Python模块:gtts、pyttsx3、baidu-aip、pywin32和speech,它们能够实现文本到语音的转换功能。
61 1
|
1月前
|
IDE 开发工具 Python
Python自动化操作word--批量替换word文档中的文字
Python自动化操作word--批量替换word文档中的文字
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】Python之人工智能应用篇——音频生成技术
音频生成是指根据所输入的数据合成对应的声音波形的过程,主要包括根据文本合成语音(text-to-speech)、进行不同语言之间的语音转换、根据视觉内容(图像或视频)进行语音描述,以及生成旋律、音乐等。它涵盖了声音结构中的音素、音节、音位、语素等基本单位的预测和组合,通过频谱逼近或波形逼近的合成策略来实现音频的生成。 音频生成技术的发展主要依赖于深度学习模型,如循环神经网络(RNN)、长短时记忆网络(LSTM)、Transformer等。这些模型通过学习大量的音频数据,能够自动生成与人类发音相似甚至超越人类水平的音频内容。近年来,随着大规模预训练模型的流行,如GPT系列模型、BERT、T5等,
82 7
【深度学习】Python之人工智能应用篇——音频生成技术
|
3月前
|
存储 数据可视化 Python
使用python moviepy提取视频中的音频,同时对音频数据进行数据可视化分析
使用python moviepy提取视频中的音频,同时对音频数据进行数据可视化分析
139 0
|
3月前
|
机器学习/深度学习 人工智能 文字识别
轻松识别文字,这款Python OCR库支持超过80种语言
轻松识别文字,这款Python OCR库支持超过80种语言