MoviePy AudioFileClip.to_soundarray 报错 TypeError: arrays to stack must be passed as a “sequence“

python-根据语音识别让无字幕视频自动生成字幕,附srt字幕文件 文章目录问题解决思路导出音频分片,导出音频时间信息自动识别停顿,对声音切片编写函数,对语音分片实现语音识别,得到文字信息对csv文件处理,得到编写srt文件需要的信息处理时间格式的代码主文件调用,并主导srt文件生成 问题 各大平台都有长语音转写的服务,但是收费昂贵,而且有次数和时间限制。 因此我想到了一个白嫖的好办法。将长音频根据语句停顿切割得到短音频,使用他们提供的短音频识别服务来识别长音频不是更好吗?粗略计算了下,可以使用的时长为50000分钟,白嫖。 至于视频声音的停顿时间也是很容易得到的。 最后根 阅读详情

我的python3.10.14,moviepy 1.0.3

代码为:

from moviepy.editor import VideoFileClip, AudioFileClip
import numpy as np
import os

def read_audio(
    dir_name: str,
    file_name: str = "movie.mp4"
) -> np.ndarray:
    """Read the audio from behavioral video"""
    f_dir = os.path.join(dir_name, file_name)

    # Read audio from video
    with VideoFileClip(f_dir) as video:
        audio = video.audio

    # 也可以直接 video = VideoFileClip(f_dir)
    # audio = video.audio

    # Convert to array
    audio_array = audio.to_soundarray(fps = audio.fps)
    print(type(audio_array))

    # Get time from duration and convert it to milisecond
    audio_time = np.linspace(0, audio.duration, audio_array.shape[0]) * 1000
    return np.vstack((audio_array, audio_time)).T

if __name__ == "__main__":
    dir_name = r"E:\HelloWorld"
    audio = read_audio(dir_name)

报错信息:

  File "c:\ProgramData\anaconda3\envs\replaypy\Lib\site-packages\replay\preprocess\frequency.py", line 27, in <module>
    audio = read_audio(dir_name)
  File "c:\ProgramData\anaconda3\envs\replaypy\Lib\site-packages\replay\preprocess\frequency.py", line 17, in read_audio
    audio_array = audio.to_soundarray(fps = audio.fps)
  File "<decorator-gen-44>", line 2, in to_soundarray
  File "C:\ProgramData\anaconda3\envs\replaypy\lib\site-packages\moviepy\decorators.py", line 54, in requires_duration
    return f(clip, *a, **k)
  File "C:\ProgramData\anaconda3\envs\replaypy\lib\site-packages\moviepy\audio\AudioClip.py", line 113, in to_soundarray
    return stacker(self.iter_chunks(fps=fps, quantize=quantize,
  File "C:\ProgramData\anaconda3\envs\replaypy\lib\site-packages\numpy\core\shape_base.py", line 216, in _vhstack_dispatcher
    return _arrays_for_stack_dispatcher(tup)
  File "C:\ProgramData\anaconda3\envs\replaypy\lib\site-packages\numpy\core\shape_base.py", line 209, in _arrays_for_stack_dispatcher
    raise TypeError('arrays to stack must be passed as a "sequence" type '
TypeError: arrays to stack must be passed as a "sequence" type such as list or tuple.

观察了下问题出在to_soundarray函数内的这一部分:

class AudioClip(Clip):
    ...
    
    @requires_duration
    def to_soundarray(self, tt=None, fps=None, quantize=False, nbytes=2, buffersize=50000):
        
        ...
        
        stacker = np.vstack if self.nchannels == 2 else np.hstack
        max_duration = 1.0 * buffersize / fps
        if tt is None:
            if self.duration > max_duration:
                return stacker(self.iter_chunks(fps=fps, quantize=quantize,
                                                nbytes=2, chunksize=buffersize))
            else:
                tt = np.arange(0, self.duration, 1.0/fps)
        
        ...

其中stacker,如果声道数为2(立体声),则用numpy的vstack函数,其他的则为hstack

而新的numpy环境已经不支持iter_chunks直接作为输入参数,因此报错。


据说更改python版本至3.8可以解决这一问题,也可以将moviepy更换为2.0.0dev0版本,参考:https://github.com/Zulko/moviepy/issues/1338

我觉得最直接的方式 参考Github issue: https://github.com/Zulko/moviepy/pull/1443和https://github.com/Zulko/moviepy/pull/1443/commits/49536feea593c031e584975c010337d804eec560

显式的将self.iter_chunks转化为tuple数据类型。问题解决。

使用MoviePy进行音视频开发:探索音量调节和创意应用 在音视频开发领域中,经常需要对音频和视频进行处理和编辑。MoviePy是一个功能强大的Python库,提供了丰富的功能,包括音量调节等。本文将介绍如何使用MoviePy的volumex函数来调节音量大小,并展示一些创意应用的示例。首先,我们需要安装MoviePy库。安装完成后,我们就可以开始使用MoviePy来处理音视频了。 阅读详情

相关推荐

AudioClip帧处理时遇到TypeError: 只有大小数组可以转换为Python标量错误

总之,只要更新numpy版本、重新安装moviepy和ffmpeg或使用Conda安装即可避免AudioClip帧处理时遇到的TypeError: 只有大小数组可以转换为Python标量错误。这种错误是由于在处理音频剪辑的帧时存在numpy版本问题,解决方法是更新numpy的版本。若问题仍然存在,则可以尝试使用Conda来进行moviepy和ffmpeg的安装,以确保所有依赖项都被正确安装。这将卸载已安装的moviepy和ffmpeg,并安装最新的版本。

PixelEnigma的博客 253

Arrays的asList报错

创建一个有内容的容器 可以利用Arrays的asList方法,即将数组转化为容器对象。 样例如下: HashSet set = new HashSet<>(Arrays.asList(‘a’,‘b’,‘c’)); 创建的set内含有a、b、c三个字符 将字符数组转化为String类型的字符串 String s=String(char[] c);//返回一个字符串 即可将字符数组转化为S...

weixin_44119795的博客 387

TypeError: new(): data must be a sequence (got float)

  TypeError: new(): data must be a sequence (got float) reason: type error  aaa=1.0 aaa= int(aaa)

jacke121的专栏 2万+

python分析集聚程度_Python机器学习(十三)

5.3 使用核主成分分析进行非线性映射0 引子许多机器学习算法都假定输入数据是线性可分的。感知器为了保证其收敛性,甚至要求训练数据是完美线性可分的。我们目前学习的算法中,像Adaline、logistic回归和支持向量机等,都将无法实现完美线性划分的原因归咎于噪声。然而,在现实世界中,大多数情况下我们面对的是非线性问题,针对此类问题,通过降维技术,如PCA和LDA等,将其转化为线性问题并不是最好的...

weixin_39610722的博客 809

UI-TARS本地部署

UI-TARS是一个用于本地部署的交互控制模型,支持桌面应用的自动化操作。部署步骤包括:首先,从官方GitHub仓库下载项目源码和模型checkpoint;其次,使用vLLM框架进行本地模型部署,启动API服务;最后,通过客户端调用API实现功能。部署过程中可能遇到pynvml模块或模型配置问题,提供了相应的解决方案。此外,还支持通过UI-TARS-Desktop客户端进行本地桌面应用的交互控制。整体流程旨在帮助用户快速实现UI-TARS的本地部署与应用。

DYF的博客 2531

量化爬虫实战:手把手教你搞定同花顺问财的hexin-v参数(附JS逆向思路与Cookie Hook技巧)

本文详细解析了如何通过JS逆向技术获取同花顺问财平台的`hexin-v`参数,包括Cookie Hook技巧和完整解决方案架构。从环境搭建到参数定位,再到生成逻辑逆向,手把手教你突破数据获取限制,为量化交易提供可靠数据支持。

weixin_42557803的博客 398

用matplotlib库将形状为(4418,3,150,27,1)的数据进行可视化

经检查发现我生成的valjoint数据与作者提供的不同。所以我想可视化看一下究竟是哪里不同。决定用matplotlib库来将valjoint形状为(4418,3,150,27,1)的numpy数据进行可视化。 通过相减我生成的数据与作者提供的数据 diff = val_from_myself - val_from_author 然后可视化出来看一下究竟是哪些数据与作者生成的不同,然后看一下差别有多大。 可视化的操作来源于stack overflow上的https://stackoverflow.com/qu

l358682594的专栏 1102

基于大模型与知识图谱的对话引导意图澄清系统技术解析

本文提出了一种基于知识图谱与大语言模型的意图澄清系统,旨在解决传统RAG模型在跨文档推理和主动澄清方面的不足。系统通过知识图谱驱动的多跳推理机制和链式思维引导的对话流程,实现了动态信息补全和意图澄清。核心创新包括:1)知识图谱构建与节点选择算法;2)标签探索策略与原子事实提取方法;3)主动澄清引擎的工作流程。实验表明,该系统能有效提升复杂查询的准确率,在医疗、金融等领域实现精准交互。关键代码展示了节点选择、标签匹配和事实提取等核心组件的实现细节。

414

moviepy音视频开发:音频剪辑基类AudioClip

☞ ░ 前往老猿Python博文目录 ░ 一、背景知识介绍 1.1、声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频)。音调主要与声波的频率有关。声波的频率高,则音调也高。 音量:也就是响度。人耳对声音强弱的主观感觉称为响度。响度和声波振动的幅度有关。一般说来,声波振动幅度越大则响度也越大。 音色:也就是音品。音色是人们区别具有同样响度、同样音调的两个声音之所以不同的特性,或者说是人耳对各种频率、各种强度的声波的综合反应。音色与声波的振动波形有关,或者说与声音的频谱结构有关。 更多关于声

老猿Python 3573

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

FJN110的博客 210

2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

小杨购物 【题目描述】 小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。 小杨想购买相同数量的商品A和商品B。 默认小猫角色和白色背景,编写程序请你帮小杨计算出他最多能够购买多少个商品A和商品B。 【输入描述】 新建变量“n”用于存储小杨购物的金额。 新建变量“a”用于存储商品A的价格。 新建变量“b”用于存储商品B的价格。 1≤n,a,b≤100000 如下图所示: 图片 【输出描述】 新建变量“result”用于存储小杨最多购买商品A和商品B的个数。 如下图所示:

人生就是一个不断学习的过程 496

MoviePy(Python音视频开发)

MoviePy(Python音视频开发)

ZhengrongYue的博客 4030

【Claude】权限被拒绝 (Permission Denied) 全场景排查 — 已解决

权限配置是 Claude Code 安全使用的核心机制。通过合理的 allow/deny 规则、正确的通配符使用、子代理独立配置、定期安全审计,可以在保证安全性的同时不影响开发效率。deny 优先:deny 规则优先级高于 allow,先保护敏感资源通配符精确单层匹配,**递归匹配,Bash(cmd*)允许带参数最小权限:只允许必要的操作,避免Bash(*)等危险规则CI 用 skip:Headless 模式用避免挂起子代理独立:每个子代理单独配置权限,不自动继承保护密钥:deny.env。

一键难忘的博客 3941

moviepy基本参数用法大全

MoviePy 是一个用于视频编辑的 Python 库,使用户能够处理、编辑和操作视频文件。这个库允许你剪辑视频、添加文本、合并视频剪辑,以及应用各种效果和转换。它建立在 NumPy、imageio 和 Decorator 等库的基础上,使得在处理视频时能够更加高效。MoviePy 允许你从现有视频中选择特定的片段,然后将它们合并成一个新的视频文件。你可以在视频中添加文本、图形和其他元素,以创建字幕、水印或其他视觉效果。

小小明-代码实体的专栏 5362

基于自抗扰控制的虚拟同步发电机二次调频控制研究

摘要:本文针对高比例可再生能源并网导致的电力系统频率稳定性问题,提出基于自抗扰控制(ADRC)的虚拟同步发电机(VSG)二次调频控制策略。通过分析VSG工作原理和传统调频方法的不足,设计了非线性ADRC和线性ADRC两种控制器,详细阐述了参数整定方法。仿真结果表明,该策略能有效消除频率稳态偏差,提升系统抗扰能力,为分布式电源参与电网调频提供了新思路。 关键词:虚拟同步发电机;自抗扰控制;二次调频;频率调节;抗扰能力

huanghm88的专栏 243

SAP PCE 到底有没有 AI 能力:从标准功能、Joule、ABAP 扩展到项目落地的完整解读

摘要:SAP S/4HANA Cloud Private Edition(PCE)已深度集成AI能力,主要体现在三个方面:1)标准业务流程中的AI辅助功能(如财务分录生成、维修单据处理);2)通过Joule提供的自然语言交互入口,支持业务导航和部分事务处理;3)开发者可通过ABAP AI SDK与BTP平台集成实现扩展。PCE不是独立AI平台,企业级自定义AI需结合SAP BTP实现。AI能力已深度融入财务、制造等业务场景,但关键业务仍需人工审核。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 330

np.vstack():竖直方向上拼接【上下拼接】

【代码】np.vstack():竖直方向上拼接【上下拼接】

wq6qeg88的博客 865

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VideoFileClip在线读取video中的audio值

想使用moviepy中的VideoFileClip读取video中的audio,并将audio的值读出。我们想不保存到本地,直接在线读出audio的值。

qq_43558894的博客 513

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

moviepy剪切视频&spleeter视频降噪-CPU&GPU

python使用spleeter进行视频降噪

qq_42283621的博客 3387

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

中文版详解gensim中的FastText模块(官方文档翻译)

引文 众所周知,在进行文本相似度分析时,我们可以用到gensim中的word2vec来构建词向量以描述词语之间的矢量关系从而实现相似度的计算。但是word2vec有一个很大的局限性,那就是该模型无法推断出不熟悉的单词的向量。如果这个限制了你的装逼,那就请查看FastText模型(官网也是这么说的)。 什么时候使用FastText FastText背后的主要原理是,单词的词法结构会...

大脸猫的博客 9218

2. An Array of Sequences

1.Overview of Built-In Sequences Container sequences: list, tuple, and collections.deque can hold items of different types. Flat sequences: str, bytes, bytearray, memoryview, and array.array hold...

weixin_30929195的博客 602

android 通过数组,流播放声音的方法,音频实时传输(转)

http://www.2cto.com/kf/201202/120310.html AudioRecord和AudioTrack类是Android获取和播放音频流的重要类,放置在android.media包中。与该包中 的MediaRecorder和MediaPlayer类不同,AudioRecord和AudioTrack类在获取和播放音频数据流时无需通过文件保 存和文件读取,可以动态地

amosye的专栏 1万+

win10 + anaconda +moviepy + mayavi + ffmpeg

背景:win10系统,已经配置好了 anaconda http://blog.csdn.net/xlianglei/article/details/53943511  目的:安装 moviepy 和 mayavi 过程:今天在网上查了很多的资料,众说纷纭。也尝试了比较多的方法,后来发现还是很简单的。如下: 一、安装 mayavi: 打开cmd,输入命令:conda install may

xLiangLei的博客 1万+

成功解决IndexError: arrays used as indices must be of integer (or boolean) type

成功解决IndexError: arrays used as indices must be of integer (or boolean) type 目录 解决问题 解决思路 解决方法 解决问题 IndexError: arrays used as indices must be of integer (or boolean) type 解...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5万+
上一篇: 使用H5py将MATLAB Cell嵌套Cell类型转化为Python数据类型 (列表list复合矩阵numpy.ndarray)
下一篇: VSCode编写Cython安装与配置
大宋黄药师
博客等级 码龄5年 24粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值