用于上采样的 PCM 算法

2024-03-22

我有 8k16 位 pcm 音频,我想将其上采样到 16k16 位。我必须手动执行此操作。

有人可以告诉我线性插值的算法吗?我应该在每两个字节之间插入吗?

另外,当我上采样时,我必须对 wav 标头进行更改 - 我应该更改什么?


正如其他人提到的,线性插值并不能提供最好的音质,但它简单且便宜。

对于您创建的每个新样本,只需将其与下一个样本进行平均即可,例如

short[] source = ...;
short[] result = new short[source.length * 2];
for(int i = 0; i < source.length; ++i) {
  result[i * 2] = source[i];
  result[i * 2 + 1] = (source[i] + source[i + 1]) / 2;
}

您绝对应该搜索一个可以帮助您处理 WAV 文件的库。尽管它是一种简单的格式,但如果有可用的代码可以满足您的需要,您就不必自己执行此操作。顺便问一下,你为什么要这样做?也许您可以使用 sox 或类似的工具来完成此操作。

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

用于上采样的 PCM 算法 的相关文章

  • MATLAB:比较两个不同长度的数组

    我有两个长度不同的数组 由于采样率不同 需要比较 我想对较大的数组进行下采样以匹配较小的数组的长度 但是该因子不是整数而是小数 举个例子 a 1 1 375 1 75 2 125 2 5 2 875 3 25 b 1 2 3 有什么方法可以
  • 在多个不同线程之间共享变量

    我想在多个线程之间共享一个变量 如下所示 boolean flag true T1 main new T1 T2 help new T2 main start help start 我想分享flag在主线程和帮助线程之间 这是我创建的两个不
  • JavaFx ComboBox 绑定混乱

    我有一个 I18N 实现 它通过属性绑定 JavaFX UI 元素 例如 def translateLabel l Label key String args Any Unit l textProperty bind createStrin
  • 在 Java 构建过程中更改常量的最佳方法

    我继承了一个在 Tomcat 下运行的 Java 应用程序 servlet 由于历史原因 根据应用程序的部署位置 本质上是品牌问题 代码具有不同的 外观和感觉 选项 有几个常量控制这个品牌过程 它们具有不同的功能 不应压缩为单个常量 即 B
  • 用于将字符串与预定义字符混合/混淆的简单算法

    我有一个字符串如下 它的长度是10 它代表基数 36 因此包含数字和大写字母 字符串的来源是数据库生成的序列 即从 1 及以上 正在转换为基数 36 我的问题是转换为base 36转换的结果也是连续 顺序的 例如 ID 1402 gt 00
  • 访问 java jigsaw 模块中的资源文件[重复]

    这个问题在这里已经有答案了 我正在尝试从项目中的类访问 Eclipse 项目中的文件 我需要将该项目声明为 jigsaw 模块才能从其他项目访问它 但是通过这样做 我无法再访问项目中的 example png 等文件 这是我的项目结构 pr
  • Java:计算字符串中字母的出现次数

    我正在尝试编写一个程序来计算字符串中字母的出现次数 例如 如果用户输入 Java 则会显示 j 1 a 2 v 1 但是 我的程序似乎有问题 当我输入 java 这个词时 它显示的是 j 0 a 1 v 0 Scanner myScanne
  • 使用 Morphia 配置 Spring Boot?

    我不想利用 Spring DATA MongoDB 支持 我想利用名为 Morphia 的 MongoDB ORM https github com mongodb morphia https github com mongodb morp
  • Android 中的 ImageView 拖动限制

    我在布局中有一个 ImageView 并在 ImageView 上设置 OnTouchListener 来拖动 ImageView 它工作得很好 我的问题是如何防止将 ImageView 移动到布局范围之外 这是我的代码 活动类别 publ
  • Spring Boot 是否支持服务器名称指示(SNI)?

    Spring Boot 是否支持服务器名称指示 SNI 具体来说 运行嵌入式 Tomcat 服务器并打包为可执行 jar 文件的 Spring Boot 2 2 2 RELEASE 应用程序是否可以根据传入请求的主机名支持多个 SSL 证书
  • Java中的String为什么是不可变的对象,但我在创建一个对象后仍然可以更改它的值? [复制]

    这个问题在这里已经有答案了 如果我可以创建一个字符串并给它一个值 这怎么可能呢 然后 我可以像这样简单地覆盖它的值 String a abc a def 我怎么可能改变的值a 我一定在这里遗漏了一些东西 我知道每当创建 String 对象时
  • 无法在 Spring boot 中使用 findOne() 方法

    我的项目是关于用户管理器网络的 我是 Spring 和 Java 的新手 这是我的代码 在 UserController 中 RequestMapping value users name method RequestMethod GET
  • spring启动时如何加载@Cache?

    我正在使用 spring cache 来改进数据库查询 其工作原理如下 Bean public CacheManager cacheManager return new ConcurrentMapCacheManager books Cac
  • Java 中的逻辑回归

    我们需要用 Java 进行逻辑回归 我们在 Python 中使用了这段代码http blog smellthedata com 2009 06 python logistic regression with l2 html http blo
  • 使用 Hibernate 作为 ORM 机制的 Web 应用程序中的 L1 和 L2 缓存有什么区别?

    我只想要一些有关使用 L1 缓存和 L2 缓存的标准用途的一般信息 我很好奇 因为我正在研究使用赤土陶器作为二级缓存的系统 并且我发现它也有一级缓存 L1 缓存是每个 Hibernate 会话都存在的缓存 并且该缓存不在线程之间共享 该缓存
  • 与 Java 中的同步块相比,新的 Lock 接口有什么优势?

    与 Java 中的同步块相比 新的 Lock 接口有什么优势 您需要实现一个高性能缓存 允许多个读取器但单个写入器保持完整性 您将如何实现它 锁的优点是 让他们公平是可能的 可以使线程在等待 Lock 对象时响应中断 可以尝试获取锁 但如果
  • jstack 是否停止在较新的 JDK8 版本上工作?

    我惊讶地发现 不知何故 最近 jstack 停止了在较新的 JDK 8 上的工作 我不确定这发生在哪个版本 但我确实得到 36649 Unable to open socket file target process not respond
  • Android 布局崩溃

    I use a XWalkView https crosswalk project org 加载网页和视频查看器 https github com Bilibili ijkplayer在我的应用程序中播放实时视频 我希望 IjkVideoV
  • Java 统一编码

    A Java char is 2 bytes http java sun com docs books tutorial java nutsandbolts datatypes html 最大大小为 65 536 但有95 221 http
  • 使用 System.currentTimeMillis() 每秒运行一次代码

    我试图使用 System currentTimeMillis 每秒运行一行代码 代码 while true long var System currentTimeMillis 1000 double var2 var 2 if var2 1

随机推荐

  • Hive 命令行 如果不是在后台执行 MapReduce 作业,则选择查询所花费的时间不正确

    我正在运行配置单元查询 如下所示 Select count group name from table name group by group name 状态 正在运行 在应用程序 ID XXXX 的 YARN 集群上执行 VERTICES
  • 将焦点更改回控制台窗口

    我对Windows编程的了解接近于零 但现在我已经制作了一个从 Windows 控制台运行的 Forth 程序 它打开一个原始的图形窗口 问题是我想通过按键来控制程序 但是当程序启动时 焦点没有在控制台窗口上 而是在图形窗口上 如何改变后焦
  • Kubeflow Pipeline 终止通知

    我尝试添加一个逻辑 当管道由于某些错误而终止时 该逻辑将发送松弛通知 我尝试用ExitHandler 但是 似乎ExitHandler不能依赖于任何操作 你有什么好主意吗 我找到了一个使用的解决方案ExitHandler 我在下面发布我的代
  • C11 类型泛型表达式 - 为什么不直接添加函数重载?

    我刚刚读了维基百科的文章C11 http en wikipedia org wiki C11 28C standard revision 29 2011年12月发布的新版本C标准 我看到新增的功能之一是 类型泛型表达式 类型通用表达式使用
  • Python openAL 3D 声音

    我刚刚开始使用 python 正在制作音频操作程序 我正在尝试在我的 python 应用程序中使用 openAL 实现 3D 声音 但我只能让它工作 这是我的 3D 声音代码 from openal loaders import load
  • 无法从 NHibernate.Driver.SQLite20Driver 创建驱动程序

    这是引发异常的代码 public Configuration GetConfiguration var persister SQLiteConfiguration Standard UsingFile Test db ShowSql var
  • 如何设置新语言 IDE

    在工作中 我们使用专有语言 并使用带有简单代码突出显示的 Notepad 进行编程 这真的很烦人 所以我想做的是花一些时间来设置一个文本编辑器或现有的 IDE 来支持我的语言 我在谷歌上搜索了很多 有很多选择 在开始工作之前我想问你什么是最
  • 生成 Play 2 的 javascript 路由器的更简洁的方法

    目前我以相当详细的方式定义我的应用程序的 javascript 路由器 def javascriptRoutes Action implicit request gt import routes javascript Ok Routes j
  • 有没有办法立即检查目录是否正在使用?

    我想使用 Directory Move 移动目录及其所有子目录 不过 在此之前 我想检查该目录及其子目录中的任何文件和子文件是否正在被其他进程使用 然后 在移动之前 我想将目录锁定到其他进程 这样我就可以确保 Directory Move
  • 在 jQuery 对象数组上调用 show

    我有一个关于性能的小问题jQuery show 这个问题出现在 IE8 中 可能还有以下版本 但 IE8 是我感兴趣的 我有一个 jQuery 对象数组 我们称之为elements 我想向他们展示 所以我这样做了 for var i ele
  • WebClient.DownloadFileTaskAsync() 实际上永远不会超时吗?

    在异步之前的日子里 人们想知道如何设置超时WebClient答案很简单 就是扩展基类并覆盖GetWebRequest 并在那里设置超时 protected override WebRequest GetWebRequest Uri addr
  • 在 Excel VBA 宏中使用 Google 翻译

    各位 多年来 我一直在我的 Excel 宏之一中使用以下函数来帮助我将照片标题从英语撰写为法语 今天上午它开始抛出一个错误 该错误指向 Send下面代码中的命令 Public Function getGoogleTranslation st
  • 从 MySQL 表中选择值是数组的行?

    我有一个包含 ID 列表的表 我使用查询来选择它 然后将其作为数组获取 我知道如何执行此操作 然后我想从另一个表中选择行 其中 ID 位于之前获取的数组中 我该怎么做 提前致谢 你很可能想做一个WHERE field IN 类型查询 它本质
  • neo4j中如何删除多个节点

    如何在neo4j中删除多个节点 不是全部 我有这个查询MATCH n where n name IS NULL delete n 它返回多个节点 我想删除所有这些节点 所有节点 这些节点是错误创建的 这就是为什么变成空 我面临的错误是 ja
  • Rails 模型范围内的关联数据

    我有一个名为Post 博客文章 和一个名为Category 每个帖子belongs to一个类别 每个类别都有一个名为retainer指定帖子 过期 之前的时间量 例如movies category retainer 30 days 我想做
  • 在 Python 中迭代嵌套字典

    我的字典的结构如下 stockData AAPL beta 1 01833975315094 company name Apple dividend 1 9341673320912078 total 300 GOOG beta 1 0183
  • 在 Verilog 设计中产生时钟故障

    我正在使用 Verilog 设计芯片 我有一个 3 位计数器 我希望当计数器处于第 8 次循环时 应该有一个时钟故障 之后就可以正常工作了 在 Verilog 设计中产生时钟故障的可能方法是什么 在时钟信号上注入毛刺的一种方法是使用forc
  • 要复制到 Windows 共享 (SMB) 的 Ant 任务

    是否有 ant 任务 类似于 ftp 或 scp 任务 允许我将一组文件复制到 Windows smb 共享 编辑 我必须为此使用 jcifs 创建一个任务 如果有人需要 这里是代码 取决于 jcifs 和 apache ioutils i
  • 使用内置 std::sort 函数对 C++ 中的二维数组进行排序

    我有一个形式的矩阵pMat M N where M and N是可变的 因此是来自用户的输入 我想使用内置的对二维数组的元素进行排序std sort功能 例如 考虑以下数组 5 9 6 8 1 3 7 2 4 它应该输出为 1 2 3 4
  • 用于上采样的 PCM 算法

    我有 8k16 位 pcm 音频 我想将其上采样到 16k16 位 我必须手动执行此操作 有人可以告诉我线性插值的算法吗 我应该在每两个字节之间插入吗 另外 当我上采样时 我必须对 wav 标头进行更改 我应该更改什么 正如其他人提到的 线