如何使用 Objective-C 在音频文件上添加回声效果

2023-12-05

我正在开发一个应用程序,我想在其中使用 Objective-c 在录制的音频文件中添加回声效果。

我正在使用 DIRAC 添加其他效果,例如男人对女人,慢,快。

现在我必须用录制的声音制作机器人声音。对于机器人语音我需要添加回声效果

请帮我做到这一点


回声非常简单。你需要一条延迟线和一点乘法。假设一个通道和音频已经以浮点表示,则延迟线将如下所示(在类似 C 的伪代码中):

int LENGTH = samplerate * seconds; //seconds is the desired length of the delay in seconds
float buffer[ LENGTH ];
int readIndex = 0, writeIndex = LENGTH - 1;

float delayLine.readNext( float x ) {
    float ret = buffer[readIndex];
    ++readIndex;
    if( readIndex >= LENGTH )
        readIndex = 0;
    return ret;
}
void delayLine.writeNext( float x ) {
    buffer[ writeIndex ] = x;
    ++writeIndex;
    if( writeIndex >= LENGTH )
        writeIndex = 0;
}

不要忘记将缓冲区初始化为全零。

这就是你的延迟线。基本用法是这样的:

float singleDelay( float x ) {
    delayLine.writeNext(x);
    return delayLine.readNext( x );
}

但你不会听到太大的区别:它会稍后出现。如果你想听到一个回声,你需要这样的东西:

float singleEcho( float x, float g ) {
    delayLine.writeNext(x);
    return x + g * delayLine.readNext( x );
}

其中 g 是某个常数,通常在 0 到 1 之间。

现在假设您想要一串回声:“HELLO...Hello...hello...h...”,就像这样。你只需要多做一点工作:

float echo( float x, float g ) {
   float ret = x + g * delayLine.readNext( x );
   delayLine.writeNext( ret );
   return ret;
}

请注意这次整个事件的输出如何反馈到延迟线,而不是输入。在这种情况下,|g| 非常重要。

您可能会在这里遇到非规范化问题。我不记得 iOS 上是否有这个问题,但我不这么认为。

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

如何使用 Objective-C 在音频文件上添加回声效果 的相关文章

  • 是否可以通过 Android 应用程序来录音?

    我是一名开发人员 希望创建一个 Android 应用程序来记录电话 这是出于我个人的需要 为了我自己的目的和记录而记录电话 是否有可能做到这一点 是否可以访问麦克风以及通过扬声器发出的声音 我对 Android 开发有点陌生 所以请耐心等待
  • 如何使用固定宽度和自动布局正确缩放图像?

    我有一个动态 UIImage 和一个固定宽度为 280 0px 的 UIImageView 并且我正在使用自动布局 在 UIImage 视图上 我设置了宽度和高度约束 并降低了高度约束的优先级 我选择了 aspect fit 并将内容拥抱和
  • ObjectiveC 和 JavaScriptCore:使用这种调用回调的方法会导致内存问题吗?

    免责声明 这是一篇很长的文章 但对于那些努力使用新的 ObjectiveC JavascriptCore 框架并在 ObjC 和 JS 之间进行异步编码的人来说可能非常有价值 您好 我对 Objective C 非常陌生 正在将 javas
  • iOS 开发:如何强制 UIWebView 加载 Facebook 的非移动版本?

    我正在深入研究 iOS 开发 当我尝试在 UIWebView 中加载特定的 Facebook 粉丝页面时 它会加载该网站的移动版本 该版本仅加载粉丝页面的墙 而不是我需要加载的特定选项卡 在我的应用程序的 iPad 版本中 UIWebVie
  • iOS 11 中的密码自动填充快速输入栏

    iOS 11 中引入了一项新功能 应用程序密码自动填充 此功能允许用户直接从键盘快速输入栏使用其应用程序中保存的密码 https techcrunch com 2017 06 08 ios 11s new password autofill
  • 在对象的 NSArray 中搜索与任何属性匹配的字符串

    我有一个 NSArray 对象 这些对象有 10 个属性 我想对这些对象进行文本搜索 我知道如何一次搜索 1 个房产 但有没有一种简单的方法可以一次搜索所有房产 以下是我的对象具有的属性列表 property nonatomic retai
  • 如何在iPhone上读入并解析XML文件?

    我有一个返回 XML 文件的 Web 服务器 可以说http www foo bar foo php wantXML 1 http www foo bar foo php wantXML 1 我如何从服务器获取该文件 然后解析它以访问数据
  • Cocos2D中如何让物体对触摸做出反应?

    好吧 我开始更多地了解 Coco2D 但我有点沮丧 我发现的很多教程都是针对过时版本的代码 因此当我浏览并了解它们如何执行某些操作时 我无法将其翻译成我自己的程序 因为很多都发生了变化 话虽如此 我正在使用最新版本的 Coco2d 版本 0
  • Metallib:读取模块时出错:无效的位码签名

    我有以下 Filter metal 文件 include
  • CIGaussianBlur 有时会改变图像方向

    在我的 iOS 应用程序中 我想在 UIImage 上应用一个滤镜 CIGaussianBlur 当它获得具有大高度的图像时 它会旋转图像 CIContext context CIContext contextWithOptions nil
  • 两个滚动视图同时工作,一键触摸

    我正在其中开发应用程序 我必须一键同时处理两个滚动视图 这意味着如果我同时滚动一个滚动视图 另一个滚动视图必须随之滚动 如果这是可能的 那么如何才能做到呢 在包含两个滚动视图的视图控制器中实现 UIScrollViewDelegate 协议
  • 如何在 iOS 中将 URL 添加到 Safari 的阅读列表?

    在我的 UIWebView 中 我想添加一个选项来将当前页面添加到 Safari 的阅读列表中 我知道这个功能的存在 因为 GMail 在长按链接时提供了它 但我找不到任何有关要使用的 URL 方案的信息 可能重复 如何从 iOS 以编程方
  • 使用 xuggle 将 mp3 转换为 wav 出现异常

    我正在尝试将 mp3 转换为 wav 代码在这里 String mp3 F work pic2talk38512 mp3 String wav F work pic2talk38512 wav TranscodeAudioAndVideo
  • 应用内购买自定义价格

    我已经搜索了一段时间 但它可能太明显了 人们不会发布它 我想知道是否可以为产品设定动态价格 我有送货申请 价格可能会因距离而异 此外 它也可以是非整数价格 例如 2 43 美元 是否可以 另外 我无法在 iTunes Connect 上设定
  • 在表中滚动时,“EXC_BAD_ACCESS”、“-[CFString release]:发送到已释放实例的消息”

    滚动时出现以下错误UITableview EXC BAD ACCESS CFString keep 发送到已释放实例的消息 我怎样才能找到已解除分配的实例 这是我的 noOfRowsinsection 代码 for int i 0 i
  • 使用动画过滤 UITableViewCells - iPhone 开发

    这看起来很简单 但到目前为止我还无法找到解决方案 基本上我有一个带有两个选项的分段控件 第一个是默认值 加载时自动显示 选择后会在表视图中显示所有行 第二个是限制显示行的过滤器 这与 iPhone 电话应用程序的 最近 选项卡上使用的设置完
  • Objective-c - 类关键字

    我没有在 Objective c 文件中使用 Class https github com cocos2d cocos2d iphone blob 15ed2bc79b74bb13dcd8022d8336a54ede94140c tests
  • 将 NSString 拆分为子字符串的最有效的内存方法

    我有以下代码 int start html rangeOfString class WordSection1 gt location 24 int end html rangeOfString div class location self
  • CoreGraphics 在 iPhone4 上比在 3G/3GS 上慢

    我有一个用 CoreGraphics 绘制的图表 该图表可以水平滚动 并且当我们滚动它时就会绘制它 问题是 在 3G 3GS 上 滚动的速度和性能良好 但在 iPhone 4 上却比预期慢 我认为这是与 iPhone 4 的高分辨率有关的问
  • cellForRowAtIndexPath:未调用

    我的应用程序有两种状态 已登录和未登录 并且我有以下架构 大大简化 ViewController A 包含一个搜索框和一个表视图 ViewController B 用于登录应用程序 流程如下 用户未登录 A 被压入堆栈 在viewWillA

随机推荐

  • 分配给 BigInteger 数组中的 an 元素时出错

    这是我的代码 当我创建数组时它显示错误BigInteger并尝试赋值 package test import java math import java lang import java util public class Test pub
  • Tomcat工作目录必须定期清理

    我们的 Tomcat 遇到了一个问题 我的同事都无法真正解释 我们有一只雄猫 版本7 0 26 在 Linux 计算机上 部署是通过爆炸战争 我们的类是jar打包的 其余的直接进入WEB INF和META INF 另外还有一个内容管理服务器
  • Spring Security 6 和 JSP 视图渲染

    我正在将应用程序从 Spring Boot 2 7 升级到 Spring Boot 3 其中包括更新到 Spring Security 6 我们设置了以下属性 spring mvc view prefix WEB INF view spri
  • 从 RStudio EC2 实例中的 S3 读取大型 JSON 文件(Louis Aslett 的 AMI)

    我正在经历与这个问题类似的问题here 我在 AWS S3 上有一个大的 JSON 文件 并尝试通过 RStudio 来自 Louis Aslett 的 AMI 的 EC2 实例 访问它 我什至尝试从 t2 迁移到具有 30GB 内存的 r
  • 使用 CSS 变换倾斜后应用于位置 div 的边距

    可能比 CSS 更多的数学知识 但我正在尝试确定一种在应用 CSS skewY 变换后调整 div 位置的方法 在下面的代码片段中 带有蓝色边框的 div 应用了 3 5 度的倾斜度 我想知道是否有数学方法可以知道倾斜度是多少top应用于蓝
  • 序列化多部分表单请求以在 Play 2.1 上进行测试

    我正在为 play2 1 编写一个使用路由函数的多部分表单的后置控制器测试 route FakeRequest POST postControllerRoute url FakeHeaders Seq HeaderNames CONTENT
  • Powershell 中的 New-Object -ComObject 和 VB 中的 CreateObject() 有什么区别?

    我有一个关于 Windows PowerShell 在处理 Com Interop 时如何工作的问题 我有一个第三方应用程序 我们称之为ThirdPartyApp 公开了一个我可以调用的 API 我可以提前绑定它 例如Excel 或 Vis
  • Bokeh 自动填充日期时间轴缺失值:如何停止?

    我正在尝试构建一个交互式情节pandas dataframe的财务数据 当市场休市或周末时 数据帧指数存在一些差距 问题是 当我使用数据帧索引作为 xasis 时 Bokeh 总是自动填充这些空白 使其在视觉上很难看 如何才能无间隙地打印数
  • 在 Fortran 牛顿法中传递附加参数

    我在实现在 Fortran 程序中调用牛顿法的方法时遇到问题 所以我想用牛顿法来求解以下方程the link 但是 我的程序与上面的示例略有不同 就我而言 方程需要一些在运行时产生的附加信息 subroutine solve f fp x0
  • 如果工作表编号/名称是变量/变体,则引用公式中的下一个或上一个工作表

    如果工作表编号 名称是变量 变体 如何引用公式中的下一个或上一个工作表 我已经看到用 vba 来做到这一点的方法 有没有办法用公式或函数来做到这一点 这是使用常规 Excel 公式列出所有工作表名称的另一种方法 Cell A1 CELL f
  • 非等待异步方法在 UI 线程上运行?

    我想要一个方法 我们称之为M1 执行一些async循环中的代码 让我们调用第二个方法M2 在每次迭代中 UI 应使用以下结果进行更新M2 为了等待M2 M1需要是async But M1应该在 UI 线程上运行 以避免竞争条件 因此它将在没
  • Python 将字符串转换为浮点型

    我有一个看起来像这样的字符串 a 92 345 r n r n a strip 当我尝试使用将其转换为浮点数时np float a 要不就float a I get Value error could not convert string
  • 使用 lapply 进行多元回归并更改公式,而不是数据集

    我见过一个列表应用 lapply 的例子 它可以很好地获取数据对象列表 并返回回归输出列表 我们可以将其传递给 Stargazer 以获得格式良好的输出 将 stargazer 与通过在分割 data frame 上进行 lapply in
  • 带 preg_match 的 PHP switch 语句

    我在 switch 语句中创建 preg match 时遇到一些问题 我想编写与 oop page view some number 匹配的 preg match 目前它的工作原理如下 如果我在浏览器中运行http example com
  • JQuery Mobile 文件上传[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我一直在到处寻找 但找不到任何例子 有谁知道我在哪里可以找到有关使用 JQuery Mo
  • 将 Firestore 依赖项和类型导入到 node.js

    在今年的 FirebaseSummit 演讲之后 我最近将我的云函数更新为 TypeScript 我的所有代码看起来都很酷 但我在尝试恢复 Firestore API 的类型时遇到一些问题 例如QuerySnapshot DocumentR
  • CSS 加载时背​​景颜色过渡/滑过

    我发现一个 CSS 过渡在悬停时效果很好 它会将我的背景颜色滑过 但仅限于悬停时 CSS 有没有办法让这种情况在加载而不是悬停时发生 color FF0000 display inline block background color ff
  • 获取对象数组中相同值的计数

    假设我有一个对象数组 const apple bookName Harry Pottar part 1 bookName Harry Pottar part 2 bookName LOTR part 1 bookName LOTR part
  • Google Apps 脚本 e.namedValues 格式多项选择

    我有一个简单的脚本 用于通过电子邮件发送 Google 云端硬盘表单提交的结果 表格中的问题之一有多项选择复选框 我正在使用 e namedValues 来获取答案数组 以便我可以通过电子邮件发送给他们 如下所示 var multiple
  • 如何使用 Objective-C 在音频文件上添加回声效果

    我正在开发一个应用程序 我想在其中使用 Objective c 在录制的音频文件中添加回声效果 我正在使用 DIRAC 添加其他效果 例如男人对女人 慢 快 现在我必须用录制的声音制作机器人声音 对于机器人语音我需要添加回声效果 请帮我做到