gpt4 book ai didi

[Python]语音识别媒体中的音频到文本

转载 作者:我是一只小鸟 更新时间:2023-03-17 22:31:12 28 4
gpt4 key购买 nike

@ 。

目录
  • 准备工作
  • 视频转音频
  • 识别音频到文本
  • 音频直接转换文本

准备工作

  1. 安装python3环境
  2. 申请一个可用的语音转换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]语音识别媒体中的音频到文本的文章就讲到这里了,如果你想了解更多关于[Python]语音识别媒体中的音频到文本的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com