通过python如何实现视频提取音频,并将音频转文本

这篇具有很好参考价值的文章主要介绍了通过python如何实现视频提取音频,并将音频转文本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大致思路:

(1)使用moviepy库中的VideoFileClip类读取视频文件,并将其转换为音频文件;

(2)使用pydub库中的splitonsilence函数将音频文件分割成多个音频片段,以便进行语音识别;

(3)使用SpeechRecognition库中的Recognizer类进行语音识别,并将识别结果写入文本文件中

注意:

将音频文件分割成多个音频片段,并对每个片段进行语音识别,最终将所有识别结果合并成一个文本文件。

运行环境简述:

(1)Mac OS 13.3.1

(2)pycharm 2021.1 

整体代码:

from moviepy.editor import VideoFileClip
from pathlib import Path
import os
import speech_recognition as sr
from pydub import AudioSegment
import datetime
from pydub.silence import split_on_silence
from tqdm import tqdm

# 视频文件夹路径
video_folder = './folder'

# 初始化语音识别器
r = sr.Recognizer()

# 遍历视频文件夹中的所有视频文件
for video_file in tqdm(Path(video_folder).rglob('*.mp4')):
    # 提取视频文件名和扩展名
    file_name = video_file.stem
    print(f'Processing video file: {file_name}')

    # 构建视频文件路径和音频文件路径
    audio_file = f'{file_name}.wav'
    video_clip = VideoFileClip(str(video_file))
    video_clip.audio.write_audiofile(audio_file)


def get_large_audio_transcription(path):
    sound = AudioSegment.from_wav(path)
    chunks = split_on_silence(sound, min_silence_len=500, silence_thresh=sound.dBFS - 14, keep_silence=500, )
    folder_name = "audio-chunks"
    # 要创建一个目录来存储音频块
    if not os.path.isdir(folder_name):
        os.mkdir(folder_name)
    whole_text = []
    time_lines = []
    # 处理每一个音频模块
    start_time = datetime.datetime.fromisoformat('2022-01-01T00:00:00')

    for i, audio_chunk in enumerate(chunks, start=1):
        # 导出音频,并保存
        chunk_filename = os.path.join(folder_name, f"chunk{i}.wav")
        audio_chunk.export(chunk_filename, format="wav")

      
        with sr.AudioFile(chunk_filename) as source:
            audio_listened = r.record(source)
       
        text = ""
        try:
            text = r.recognize_google(audio_listened, language="zh-CN", show_all=True)
            if text and len(text['alternative']) > 0:
                text = text['alternative'][0]['transcript']
            else:
                text = ""
        except sr.UnknownValueError as e:
            # print("Error:", str(e))
            pass
        else:
            if text:
                text = f"{text.capitalize()}."
                # print(start_time.time(), ":", text)
                whole_text.append(text)
                time_lines.append(start_time)
                duration = audio_chunk.duration_seconds
                start_time += datetime.timedelta(seconds=duration)
    # return the text for all chunks detected
    return whole_text, time_lines


# 使用SpeechRecognition库进行语音识别
with open(f'{file_name}.txt', 'w', encoding='utf-8') as f:
    for text, time in tqdm(zip(*get_large_audio_transcription(audio_file)),
                           total=len(list(get_large_audio_transcription(audio_file)))):
        f.write(f'{time.time()} {text}\n')

print('All done!')

运行结果:

 

python视频语音转文字,音视频,语音识别,python文章来源地址https://www.toymoban.com/news/detail-743214.html

到了这里,关于通过python如何实现视频提取音频,并将音频转文本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何从视频中提取音频?分享三个免费的方法给大家!

    在数字时代,视频和音频的使用越来越广泛。有时,您可能希望从视频中提取音频,以便单独使用或与他人分享。无需购买昂贵的软件或具备专业技能,下面将介绍三种免费的方法,帮助您从视频中提取音频。这些方法简单易行,适用于任何人。 方法一:使用剪映 剪映是一

    2024年02月06日
    浏览(35)
  • 提取视频中的音频 Python只需要三行代码!

    身处数据爆炸增长的信息时代,各种各样的数据都飞速增长,视频数据也不例外。我们可以使用 python 来提取视频中的音频,而这 仅仅需要安装一个体量很小的 python 库,然后执行三行代码! 语音数据在数据分析领域极为重要。比如可以分析语义、口音、根据人的情绪等等。

    2023年04月09日
    浏览(26)
  • 一键智能视频语音转文本——基于PaddlePaddle语音识别与Python轻松提取视频语音并生成文案

    如今进行入自媒体行业的人越来越多,短视频也逐渐成为了主流,但好多时候是想如何把视频里面的语音转成文字,比如,录制会议视频后,做会议纪要;比如,网课教程视频,想要做笔记;比如,需要提取视频中文案使用;比如,需要给视频加个字幕;这时候,只要把视频转

    2024年02月08日
    浏览(27)
  • 【HarmonyOS】实现从视频提取音频并保存到pcm文件功能(API6 Java)

     【】 视频提取类Extractor、视频编解码、保存pcm文件 【写在前面】 在使用API6开发HarmonyOS应用时,通常会开发一些音视频媒体功能,这里介绍如何从视频中提取音频保存到pcm文件功能,生成pcm音频文件后,就可使用音频播放类AudioRenderer进行播放了。这里主要介绍从视频

    2024年02月15日
    浏览(26)
  • 【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)

    【】 视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】 上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid=0101591351254000314,解码步骤使用的是普通模式进行解码,测试过程

    2024年02月13日
    浏览(26)
  • chatgpt赋能python:Python如何只提取文本中的数字?

    随着数字化时代的到来,数字成为了我们生活中不可或缺的一部分。我们每天都需要处理大量的数字,比如账单、统计数据等等,这些数字都散落在各个文本中。如果我们需要将这些数字提取出来,该怎么办呢? Python提供了一种非常简单和高效的方法,可以帮助我们快速地从

    2024年02月07日
    浏览(30)
  • 怎么提取视频中的音频?这些提取音频方法很简单

    将视频中的音频提取出来,可以单独对音频进行处理,如剪辑、增强声音等,而不影响视频本身的内容。在后期制作中,音频需要经过一系列的处理,如去噪、降噪、混响等,提取出音频可以更方便地进行这些处理,确保音频效果更好。教大家几种好用的提取音频方法,一起

    2024年02月16日
    浏览(28)
  • 视频的音频提取怎么做?这样提取很简单

    提取视频中的音频通常在需要从视频中独立使用音频或需要对音频进行编辑时使用。例如,当我们需要将音频上传到音乐流媒体平台或将其用于播客或其他音频项目时,就可能需要从视频中提取音频。问题是该怎么提取呢?教给大家几种简单的提取方法,一起来学习下吧。

    2024年02月16日
    浏览(35)
  • Android提取视频或音频

    【Android】使用MediaExtractor、MediaMuxer去掉视频文件中的音频数据_android 去掉视频音频_little_fat_sheep的博客-CSDN博客 选择视频文件

    2024年02月09日
    浏览(23)
  • 提取视频文件里的音频和无声视频

    一、提取视频文件里的音频: 二、提取视频文件里的无声视频

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包