更改声音文件的速度

2024-03-11

我正在寻找改变声音文件的速度,但不知道如何实现它。我假设在减慢速度的情况下必须进行某种类型的插值,但不确定如何实现加速 - 也许是几个样本的平均值?无论是改变节奏还是音调,目前并不重要,我想学习如何实现这两者,但至少想先完成其中一个。

如果有人对这些类型操作背后的数学有任何参考,他们将不胜感激!

谢谢, 本


有两个选项可加快声音文件的播放速度:

  • 提高采样率
  • 减少单位时间的样本数量。

在这两种方法中,播放速度的增加都会使声音的音调发生相应的变化。

提高采样率

提高采样率将提高声音的播放速度。例如,从 22 KHz 采样率变为 44 KHz 将使播放声音的速度比原始速度快一倍。在这种方法中,原始采样数据不会改变——只需更改音频播放设置。

减少单位时间的样本数量

在这种方法中,播放采样率保持恒定,但样本数量减少——一些样本被丢弃。

使声音播放速度是原始速度两倍的简单方法是删除所有其他样本,并以原始播放采样率播放。

然而,使用这种方法,一些信息将会丢失,并且我预计音频中会引入一些伪像,因此这不是最理想的方法。

尽管我自己还没有尝试过,但对样本进行平均以创建新样本的想法是一个很好的开始方法。这似乎意味着,不仅可以丢弃音频信息,还可以通过平均过程在一定程度上“保留”音频信息。

作为该过程的粗略想法,这里有一段伪代码,可以使播放速度加倍:

original_samples = [0, 0.1, 0.2, 0.3, 0.4, 0.5]

def faster(samples):
    new_samples = []
    for i = 0 to samples.length:
        if i is even:
            new_samples.add(0.5 * (samples[i] + samples[i+1]))
    return new_samples

faster_samples = faster(original_samples)

我还发布了对问题的回答“程序化音频入门 https://stackoverflow.com/questions/366187/getting-started-with-programmatic-audio“其中我详细介绍了一些可以执行的基本音频操作,所以也许这也很有趣。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改声音文件的速度 的相关文章

  • 严格标准:在 wordpress/wp-includes/class-oembed.php 第 116 行中,仅应通过引用传递变量

    我已经查看了很多类似的问题 但关于我的代码 我没有得到它 错误 Strict Standards Only variables should be passed by reference in wordpress wp includes c
  • 以一定角度遍历二维数组

    通常我们按行或列遍历数组 但这里我想以角度遍历它 我会尝试解释我的意思 因此 假设角度是 45 度 那么它会搜索为 0 0 then 0 1 1 0 then 0 2 1 1 2 0 等等 抱歉 无法上传图像 因为我是新用户 不允许这样做
  • Bellman-Ford 算法检测什么?负重还是负循环?

    如果给定一个图 现在我们要从源头计算最短路径 现在 如果一条边具有负权重 但在到达目的地时有边到后边返回到该边 我的意思是如果没有循环 那么我们就没有负循环 但是here http en wikipedia org wiki Bellman
  • 如何动态查找连接组件

    使用不相交集数据结构可以很容易地得到图的连通分量 而且 它只是支持增量连接组件 http www boost org doc libs 1 46 1 libs graph doc incremental components html 然而
  • 哪种数据聚类算法适合检测时间序列事件中未知数量的聚类?

    这是我的场景 考虑在不同地点和时间发生的一组事件 例如 考虑有人在高空记录暴风雨期间城市中的雷击 就我的目的而言 闪电是瞬时的 只能击中某些位置 例如高层建筑 还可以想象每次雷击都有一个唯一的 ID 以便以后可以参考该雷击 这个城市大约有1
  • Java:如何实现3和?

    我正在研究 3 Sum 来自己实现它 并遇到了以下规则的实现 给定一个由 n 个整数组成的数组 S S 中是否存在满足 a b c 0 的元素 a b c 查找数组中所有总和为零的唯一三元组 注意 三元组 a b c 中的元素必须按非降序排
  • 在关键服务器上对字符串进行内存受限的外部排序,并合并和计算重复项(数十亿个文件名)

    我们的服务器生成如下文件 c521c143 2a23 42ef 89d1 557915e2323a sign xml在其日志文件夹中 第一部分是GUID 第二部分是名称模板 我想计算具有同名模板的文件的数量 例如 我们有 c521c143
  • C 中的菱形数组排序

    我有以下 C 语言作业 我基本上需要一种方法而不是解决方案 我们有一个 13 x 13 的数组 在数组中 我们有一个需要考虑的菱形形状 该菱形之外的所有内容都初始化为 1 不重要 下面的 5 x 5 数组示例 x x 1 x x x 2 2
  • 如何高效地在屏幕上精确绘制N个点?

    这听起来是一个简单的问题 但我发现要获得良好的性能是非常棘手的 我提出的第一个算法是随机绘制点 从一组中检查是否已绘制 否则绘制 如果我们只绘制几个点 那么这种方法效果很好 但当我们接近填满屏幕时 速度会灾难性地减慢 我想出的最好的方法是构
  • 快速求解子集和

    考虑这种解决子集和问题的方法 def subset summing to zero activities subsets 0 for activity cost in activities iteritems old subsets sub
  • 检索受“rowspan”影响的行的列索引的最有效方法是什么?

    考虑下表 table thead tr th th th A th th B th th C th tr thead tbody tr th 1 th td Apples td td Oranges td td Pears td tr tb
  • 如何从一组重叠的圆计算多边形集?

    这个问题是一些计算细节的扩展这个问题 https stackoverflow com questions 1667310 combined area of overlapping circles 假设有一组 可能重叠的 圆 并且希望计算这组
  • 高维最近邻搜索的最佳数据结构

    我实际上正在处理高维数据 50 000 100 000 个特征 并且必须对其执行最近邻搜索 我知道随着维度的增长 KD 树的性能很差 而且我还了解到 一般来说 所有空间分区数据结构都倾向于对高维数据执行详尽的搜索 此外 还有两个重要事实需要
  • 将声音图形化地表示为波

    我创建了一个记录和播放声音的应用程序 我正在寻找一种显示简单波形的方法 记录声音的表示 不需要动画 只需一个简单的图表 如果可以选择波的子集也很好 当然更好 也播放该部分 总而言之 我正在寻找什么 一种以图形方式将录制的声音表示为波的方法
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • 如何捕获正在播放的音频?

    有谁知道如何以编程方式捕获正在播放的声音 即来自声卡的所有声音 而不是麦克风等输入设备 假设您正在谈论 Windows 则基本上可以通过三种方法来实现此目的 首先是打开音频设备的主输出作为录音源 这只有在驱动程序支持时才可能实现 尽管现在大
  • 由周期表元素形成的最大单词的算法

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 数组中连续元素的最大乘积

    我在现场面试的时候被问到了这个算法问题 由于没有要求我签署保密协议 我将其发布在这里寻求答案 给定一个数组REAL不包含 0 的数字 找到产生最大乘积的连续元素 该算法应在线性时间内运行 我考虑过以下方法 使用两个数组 第一个是利用DP思想

随机推荐

  • KDiff3 中的手动差异对齐

    KDiff3 中的 添加手动差异对齐 似乎没有做任何事情 在线文档相当稀疏 这个功能真的有用吗 好吧 我明白了 要在 KDiff3 中添加手动差异对齐 将光标置于一个子窗口中某些文本的开头 按 Ctrl Y 将光标置于另一个子窗口中某些文本
  • Apache FOP 和 Arial 字体

    我的 XSL 样式使用 Arial 字体
  • 如何在 NHibernate 中将 ICriteria 与 Enum 属性一起使用

    您好 我想编写一个 FindByExample object o 方法 所以我尝试了这个 public IList
  • 如何使用php查看受保护文件夹中的图像?

    我的网站上有一个受密码保护的目录 带有 htaccess 其中包含 jpg 文件 我不希望任何人都可以直接访问这些 jpg 但我想允许 php 脚本显示 jpg 文件 这样的事情可能吗 对于那些想知道为什么我想要这个的人 我有一个注册表单
  • 如何在 Java 代码中访问弹簧执行器健康检查的结果?

    我已经使用端点 actuator health 设置了一个运行状况检查执行器 当您访问 URL 时 它会为我的应用程序生成类似以下内容的内容 status UP app status UP db status UP 有没有办法可以使用 Sp
  • 以常见方式更改seaborn图和matplotlib库图的大小

    from pylab import rcParams rcParams figure figsize 10 10 这适用于直方图 但不适用于因子图 sns factorplot 仍然显示默认大小 sns factorplot Pclass
  • 从终端向 Clojure 应用程序发送消息

    如何向正在运行的 clojure 应用程序发送消息 例如 如果我有一个特定的变量或标志 我想在 uberjar 运行时从终端设置 这可能吗 一种方法是读取应用程序中可以更改的文件 但这听起来很笨拙 提前致谢 实现此目的的一种方法是让您的应用
  • FORTIFY_SOURCE:FD_SET:文件描述符 >= FD_SETSIZE。调用 abort()

    我是一名安卓程序员 今天我运行一个 Android 应用程序 当时我遇到了此类错误 FORTIFY SOURCE FD SET 文件描述符 gt FD SETSIZE 调用 abort 因此 如果有人知道这个问题的答案 请回复我 您的进程打
  • 如何设置 WCF 自托管 REST 服务?

    我正在尝试从我的计算机自行托管一些 WCF RESTful 服务 以供本地网络上的计算机使用 我没有使用 WCF 的经验 而且在这方面基本上是个新手 我创建了一个非常基本的 精简的控制台应用程序 看看是否可以让它工作 static void
  • 保持 Windows Mobile 应用程序在待机模式下运行

    我有一个简单的 Windows Mobile 应用程序 用于记录 GPS 坐标 每 5 分钟一次 问题是只要屏幕正常 应用程序就可以正常工作 打开后 一旦手机进入待机模式 应用程序就会停止工作 当我打开设备时 应用程序再次开始工作 我该怎么
  • 如何按数组内的属性查询嵌套对象?

    我收集了数千个 可能 30 40k 文档 其结构 大大简化 如下 propA 123 obj prop1 a prop1 b prop1 c propB 456 我如何查询以找到所有文档obj prop1 b 我似乎无法弄清楚如何检查数组属
  • 如何获得两个范围的重叠范围

    我在区间 1 15 中有以下范围 我想找到人 1 和人 2 之间的重叠范围 人物 1 1 3 5 10 人物 2 2 4 8 15 这里我应该得到一个范围列表 其中 2 3 8 10 到目前为止我发现的是先按 person1 的范围循环 然
  • Where 子句中的 SQL Row_Number() 函数

    我发现一个问题的答案是Row Number where 子句中的函数 当我尝试一个查询时 我收到以下错误 消息 4108 级别 15 状态 1 第 1 行 窗口函数只能出现在 SELECT 或 ORDER BY 子句中 这是我尝试过的查询
  • Laravel - php artisan view:clear 有什么作用?

    我运行一个命令php artisan view clear 正如我遵循 Laravel 中自定义 404 页面的教程一样 正如所解释的 该命令清除所有编译的视图文件 进一步我在 laravel 文档中查找它 它说它从视图文件中删除缓存 我问
  • 在 kohana v3 中显示“闪现消息”的最佳方式是什么?

    我想知道最好的展示方式闪讯在 Kohana v3 中 一些教程或示例会很有帮助 你的意思是像 Kohana 2 x 的 flash 会话变量吗 最新的 Kohana 支持get once https github com kohana co
  • 无法从程序集“mscorlib”加载类型“System.Security.Principal.WindowsImpersonationContext”

    我正在创建一个 ASP NET API Core 应用程序来处理与 Oracle 数据库通信的 API 服务 在运行时 当进程尝试通过 DbContext 实体框架 使用新的 Oracle 连接连接到数据库时 会出现未处理的错误并强制应用程
  • SQL 数据读取器 - 处理空列值

    我正在使用 SQLdatareader 从数据库构建 POCO 除非在数据库中遇到空值 否则该代码将正常工作 例如 如果数据库中的 FirstName 列包含空值 则会引发异常 employee FirstName sqlreader Ge
  • 部署网站时缺少 using 指令或程序集引用错误

    我有一个网站 其中 cs 文件位于 App Code 文件夹中 在我的项目中添加类项时 VS2010 建议我创建此文件夹 我有一个使用此类的 default aspx cs 文件 我在VS2010上运行没有任何错误 但是 当我通过私人托管公
  • 找到重复元素异或运算符数组中的两个非重复元素?

    假设我有一个包含 2n 2 个元素的数组 数组中的 n 个元素出现了两次 其余两个元素是唯一的 你必须在 O n 时间和 O 1 空间内解决这个问题 解决方案之一是使用 XOR 但我无法理解这一点 任何人都可以帮助我解决这个问题或者可以给我
  • 更改声音文件的速度

    我正在寻找改变声音文件的速度 但不知道如何实现它 我假设在减慢速度的情况下必须进行某种类型的插值 但不确定如何实现加速 也许是几个样本的平均值 无论是改变节奏还是音调 目前并不重要 我想学习如何实现这两者 但至少想先完成其中一个 如果有人对