[Python]语音识别媒体中的音频到文本
@
准备工作
- 安装python3环境
- 申请一个可用的语音转换API,此篇以Microsoft Azure Speech为例
在Microsoft Azure 市场中搜索speech
关键字找到语音服务。并创建好服务实例
在资源中找到创建的服务并查看
在此处点击显示密钥,我们要记住key
值和location
值,作为语音识别库的请求参数
视频转音频
安装视频库moviepy
pip install moviepy
编写代码,将视频文件test.mp4中的音频提取到test2.wav
import moviepy.editor
videoClip = moviepy.editor.VideoFileClip(r"{}".format("test.mp4"))
videoClip.audio.write_audiofile(r"{}".format("test2.wav"))
识别音频到文本
安装语音识别库SpeechRecognition
pip install SpeechRecognition
编写代码,将视频文件test3.wav
中的音频识别,并转换成文本写入test.txt
import speech_recognition
audio2 = speech_recognition.AudioFile("{}".format("test3.wav"))
recognizer = speech_recognition.Recognizer()
with audio2 as source:
audioData = recognizer.record(source)
result = recognizer.recognize_azure(audioData,key="<your api key>",language="zh-CN",location="eastus")
with open('test.txt', 'w') as file:
if result.__len__()>0:
file.write(result[0])
完整代码如下
import speech_recognition
import moviepy.editor
videoClip = moviepy.editor.VideoFileClip(r"{}".format("test.mp4"))
videoClip.audio.write_audiofile(r"{}".format("test2.wav"))
audio2 = speech_recognition.AudioFile("{}".format("test2.wav"))
recognizer = speech_recognition.Recognizer()
with audio2 as source:
audioData = recognizer.record(source)
result = recognizer.recognize_azure(audioData,key="<your api key>",language="zh-CN",location="eastus")
with open('test.txt', 'w') as file:
if result.__len__()>0:
file.write(result[0])
音频直接转换文本
Azure提供了快捷转换语音到文本的工具 https://speech.microsoft.com/portal
点击实时语音转文本
这里需要注意的是,需要上传的音频格式为16kHz 或 8kHz、16 位和单声道 PCM
上传完成后将自动转换成文本
安装音频转换库pydub
pip install pydub
编写代码,将test.aac
文件以16kHz 采样率和单声道 PCM 编码方式,保存至test1.wav
注意,如果使用ffmpeg编码的格式,需要下载ffmpeg相关库到脚本所在目录
http://www.ffmpeg.org/download.html#build-windows
from pydub import AudioSegment
audio1 = AudioSegment.from_file("test.aac", "aac")
# -ac 1 -ar 16000
audio1.export("test1.wav", format="wav",parameters=["-ac", "1", "-ar", "16000"])
[Python]语音识别媒体中的音频到文本的更多相关文章
- [译]使用BeautifulSoup和Python从网页中提取文本
如果您要花时间浏览网页,您可能遇到的一项任务就是从HTML中删除可见的文本内容. 如果您使用的是Python,我们可以使用BeautifulSoup来完成此任务. 设置提取 首先,我们需要获取一些HT ...
- 基于百度语音识别API的Python语音识别小程序
一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...
- 如何利用Social Listening从社会化媒体中“提炼”有价值的信息?
本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 在本文中,笔者将会介绍大数据分析主要的处对象---社会化媒 ...
- MRCPv2在电信智能语音识别业务中的应用
1. MRCPv2协议简介 媒体资源控制协议(Media Resource Control Protocol, MRCP)是一种基于TCP/IP的通讯协议,用于客户端向媒体资源服务器请求提供各种媒体资 ...
- Python 基础教程中的问题及解决方案(1)
1. 在ubuntu中,调用终端时如: f = open('/home/theone/test_input.txt', 'r') 中的txt格式文本不能加后缀 正确的应为: f = open('/h ...
- 与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成
原文:与众不同 windows phone (14) - Media(媒体)之音频播放器, 视频播放器, 与 Windows Phone 的音乐和视频中心集成 [索引页][源码下载] 与众不同 win ...
- 用python在excel中读取与生成随机数写入excel中
今天是我第一次发博客,就关于python在excel中的应用作为我的第一篇吧. 具体要求是:在一份已知的excel表格中读取学生的学号与姓名,再将这些数据放到新的excel表中的第一列与第二列,最后再 ...
- [python] 使用Jieba工具中文分词及文本聚类概念
声明:由于担心CSDN博客丢失,在博客园简单对其进行备份,以后两个地方都会写文章的~感谢CSDN和博客园提供的平台. 前面讲述了很多关于Python爬取本体Ontology.消息盒Inf ...
- [转]【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理 阅读目录
[NLP]干货!Python NLTK结合stanford NLP工具包进行文本处理 原贴: https://www.cnblogs.com/baiboy/p/nltk1.html 阅读目录 目 ...
- 在html中插入音频
在html中插入音频 第一种:在页面代码中的<head></head>之间加入<bgsound src="音乐url" loop="-1&q ...
随机推荐
- 1.3 选择IDE
选择IDE 使用过的IDE 1.DEV-C++ 配合使用语言:C.C++ 个人体验:支持代码补全,信息竞赛遗留物,招很多入门教材喜欢,十分古老缺乏维护,功能简洁,安装完打开直接编译很方便,代码提示让人 ...
- windows快捷键, 基本dos命令
Ctrl+C 复制Ctrl+V 粘贴Ctrl+A 全选Ctrl+X 剪切Ctrl+S 保存Alt+F4 关闭窗口shift+delete 永久删除Window+R 打开运行cmd 打开命令行窗口Win ...
- tensorflow 模型批处理参数tensor快速赋值参考
批处理调用模型的时候,如果逐像素给tensor对象数据部分赋值的话,效率是很低的,尤其是对于一些图片数据,所以数据块直接拷贝可以大大提高效率, 先取得数据指针: output_tensor->f ...
- django前后端分离接口开发
用django进行接口开发 接口: /api/parameter (同一个接口地址实现不同的请求方式) 全局参数(get,post,put,delete) GET:获取全局参数的所有数据 POST:创 ...
- c# 串口 转发到 TCP 客户端
前言 对于数据流Stream的转发.在.net 3.5之后的版本只需要 stream.CopyTo(stream). 目前只是为了方便调用测试,花了一点点时间做了一个简单的调用demo 完整代码 us ...
- OPENSUSE网速慢
无线网卡是Broadcom 4313,刚安装完opensuse,网速只有60Kb左右. 添加packman私有驱动后,网速才正常起来.
- PyCharm 取消单词拼写检查
在使用PyCharm的时候,有时候变量不符合规范比如"old_pwd"写成了"oldpwd" ,在变量下就会出现波浪线,比较烦人 去除这个拼写检查的地方是:Fi ...
- CF527D 题解
题意:数轴上有 \(n\) 个点,第 \(i\) 个点的坐标为 \(x_i\),权值为 \(w_i\).两个点 \(i,j\) 之间存在一条边当且仅当 \(abs(x_i-x_j)\geq w_i+w ...
- 如何在Windows 10上使用VS2019 编译C
一.安装VS 2019 首先VS官网上下载免费的VS2019 community.我们的目的是在Windows上使用该软件编译C,如下图所示,把使用C++的桌面开发打上勾 二.创建.C 项目 1.打开 ...
- 数组扩展(Java)
Arrays类 基本介绍 数组的工具类java.util.Arrays 由于数组本身中没有什么方法可供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作 查 ...