[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 ...
随机推荐
- scala调用fastjson JSON.toJSONString()序列化对象出错
在scala中需要将case class 序列化为string,代码如下 results.map(JSON.toJSONString(_)).foreach(println) case class p ...
- Mixly呼吸灯及可调灯(物联网)
3挡可调灯 2秒呼吸灯
- 【APT】响尾蛇(SideWinder)Hta文件自动解密C2
前言 一个用于从SideWinder APT组织常用的hat文件中解密C2链接地址的Python脚本,示例代码对一些老的hat文件效果比较好,新的样本可能需要根据实际情况修改下,最初是用于对VT上命中 ...
- wampserver APACHE配置文件 和 单独安装APACHE 的配置文件 的区别
wampserver APACHE配置文件: 单独安装APACHE 的配置文件
- Unity C#代码入门
Unity C#代码入门 1. 脚本基本结构 1.1 unity生成的模板 using System.Collections; using System.Collections.Generic; us ...
- redis 简单安装
参考官网,安装步骤基本照搬redis官网,其他只做简单说明https://redis.io/download/https://redis.io/docs/getting-started/install ...
- 《Linux就该这么学》这本书写得真好,我很喜欢。
本书是由全国多名红帽架构师(RHCA)基于最新Linux系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材,目前是国内最值得去读的Linux教材,也是最有价值 ...
- c++结对编程
|| |:--|:--| |Github项目|Github地址 |结对伙伴|伙伴地址1伙伴地址2 PSP表格 ||| |:--|:--|:--|:--| |PSP2.1|Personal Softwa ...
- XML_DOM4J_20200415
package com.wy.xml; import java.io.File;import java.util.Iterator; import org.dom4j.Attribute; impor ...
- JMeter线程
线程Threads:场景设置,模拟并发用户发送请求,设置并发策略.即以线程的方式来模拟多用户并发的.常用线程包括:线程组. jp@gc-Stepping Thread Group.bzm-Arriva ...