生成 DTMF 音

2024-04-04

我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法。我正在尝试生成 DTMF 音调,但似乎找不到任何实质性内容。我还希望能够指定播放音调的时间(即模拟按住按钮而不是简单地按下按钮。)

我发现了一个名为 iPhreak 的开源应用程序。据说它会生成 DTMF 音来欺骗公用电话(我向你保证这不是我的意图 - 我的公司处理基于电话的内部通信系统)。该应用程序的唯一问题是开源项目中缺少文件。也许其他人过去已经让这个项目开始工作了?

如果有人知道我会在哪里寻找这样的东西,我将非常感谢我的投票:)


应该很容易自己生成。 鉴于硬件可以以 44.1 khz 播放 pcm 缓冲区(16 位样本)(它肯定可以通过某些库函数或其他函数实现),您只需计算波形即可:

 const int PLAYBACKFREQ = 44100;
 const float PI2 = 3.14159265359f * 2;

 void generateDTMF(short *buffer, int length, float freq1, float freq2)
 {
      int i;
      short *dest = buffer;
      for(i=0; i<length; i++)
      {
           *(dest++) = (sin(i*(PI2*(PLAYBACKFREQ/freq1))) + sin(i (PI2*(PLAYBACKFREQ/freq2)))) * 16383;
      }
 }

16383 已完成,因为我使用加法合成(只需将正弦波加在一起)。因此最大结果是 -2.0 - 2.0 所以乘以 16383 后我或多或少得到最大 16 位结果:-32768 - +32767

编辑: 这 2 个频率是其他回答者链接到的维基百科文章中的频率。两个独特的频率产生 DTMF 声音

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

生成 DTMF 音 的相关文章

随机推荐

  • CoreData 和 mergeChangesFromContextDidSaveNotification

    我正在创建一个addingManagedObjectContext 作为新实体的便笺簿区域 然后在 保存 时将新实体合并到我的主 ManagedObjectContext 中 类似于 CoreDataBooks 示例中的显示方式 合并新实体
  • AWS Amplify Graphql 对 @connection 的查询

    我正在使用 AWS Amplify 前端使用 Cli 和 Angular 7 进行 Graphql AppSync 并且想知道当超过 10 个项目时如何获取所有连接的项目 假设我创建了一个这样的 schema graphql type Us
  • 为什么这个 Lua 优化 hack 会提高性能?

    我正在寻找一个描述提高 Lua 性能的各种技术的文档 http www lua org gems sample pdf脚本代码 我很震惊竟然需要这样的技巧 虽然我引用的是 Lua 但我在 Javascript 中也见过类似的 hack 为什
  • 仅重写 URL 的中间部分 - mod rewrite .htaccess

    我想改变cadeaushopurl 中的部分hobby cadeau shop 我在 htaccess 文件中进行了以下 mod 重写 RewriteRule cadeaushop http www zovyo nl hobby cadea
  • 如何在控制器中控制页面路由?

    OnsenUI 很棒 快速又简单 然而 关于控制器中控制温泉逻辑的文档并不多 例如 我想在控制器内执行 location path newpath 泡温泉是怎样做的 我尝试了 ons navigator pushPage partials
  • FFmpeg:如何估计音频流中的样本数量?

    我目前正在编写一个小型应用程序 它利用 FFmpeg 库来解码 C 中的音频文件 尤其是 avformat 和 swresample 现在我需要音频流中的样本总数 我知道确切的数字只能通过实际解码所有帧才能找到 我只需要一个估计 这里的首选
  • MouseListener 被多次调用

    我使用此代码来获取作为 jLable 图标放置的图像的 X 和 Y 坐标 对此的答案建议了这种获取坐标的方法question https stackoverflow com questions 19977589 how to get x y
  • HashMap 可串行化

    HashMap实现了Serialized接口 所以可以序列化 我查看了 HashMap 的实现 并且 Entry 表被标记为瞬态 由于Entry 表是存储Map全部内容的表 如果不能序列化 那么反序列化时Map是如何构造回来的 如果你看来源
  • Matplotlib 3D绘图zorder问题

    我有一个由蓝色表面组成的图 通过绘制plot surface 和一个红色球体 通过绘制scatter 曲面的 zorder 设置为 0 球体的 zorder 设置为 1 尽管不设置任何 zorder 值会产生相同的结果 You can se
  • 如何使用 Rails 和 Paperclip 将照片存储在 Google Cloud Storage 上?

    到目前为止 我一直使用 Amazon S3 来存储用户的文件 这里需要做的就是 指定存储桶的 Amazon S3 凭证 add aws sdk gem 到 Gemfile 并在模型中 has attached file avatar sty
  • 如何将 gdb 附加到 docker 容器中运行的进程?

    我在 docker 容器中有一个长时间运行的进程 我想将 gdb 附加到该进程以查看正在运行的线程并获取堆栈跟踪 我可以从主机附加到进程 但无法解析任何符号 因为可执行文件位于文件系统中的不同位置 位于 docker 安装的卷中 并且共享系
  • 将 void 指针转换为 float*/int* 时取消引用

    A int i 10 void p i printf f n float p B float i 10 00 void p i no change printf d n int p 为什么 A 打印 0 0 而不是 10 0 如果我们把A改
  • C hack 用于存储占用 1 位空间的位?

    我有一长串 0 到 67600 之间的数字 现在我想使用一个 67600 个元素长的数组来存储它们 如果某个数字在集合中 则该元素设置为 1 如果该数字不在集合中 则该元素设置为 0 IE 每次我只需要 1 位信息来存储数字的存在 C C
  • 有没有办法“提取”Expression Blend 的 WPF 控件?

    我不确定组成 Expression Blend 的 UI 的 WPF 控件是否以可用的方式打包在应用程序中 例如单独的程序集等 但是如果不是 是否有一种方法可以 提取 这些控件 以便您可以您的应用程序中具有相同外观和功能的相同控件吗 我相信
  • 如何以编程方式保存用户设置?

    我有一个按钮 可以打开窗口颜色托盘 然后将选择的颜色分配给某个虚拟工作室中的选定元素 用户首先通过鼠标单击选择元素 然后根据元素 ID 分配颜色 因此 每次单击按钮时 相同或不同元素的颜色都会发生变化 元素 ID 是从当鼠标单击某个元素时触
  • 时间线的最佳技术

    现在卡扎菲40多年的统治已经结束 我想将他的统治时期与其他国家的统治时期构建一个时间线图 例如美国总统 德国总理等 因此 x 轴是时间 y 轴是国家和时间线 按正确的时间范围划分 显示美国的尼克松 福特等 当我尝试学习 R 时 我更喜欢该语
  • 在Python中将多个参数传递给pool.map()函数[重复]

    这个问题在这里已经有答案了 我需要某种方法来使用 pool map 中接受多个参数的函数 根据我的理解 pool map 的目标函数只能有一个可迭代作为参数 但有没有一种方法可以传递其他参数 在这种情况下 我需要传递一些配置变量 例如我的
  • Xcode 4.6 自动授权不起作用 - “没有有效的 aps 环境”

    我遇到了著名的错误 无法获取令牌 错误 错误域 NSCocoaErrorDomain Code 3000 找不到应用程序的有效 aps environment 权利字符串 UserInfo 0x413be0 NSLocalizedDescr
  • 将 JsDoc3 用于大型应用程序,如何将模块分组为部分/类别/子模块

    我正在开发一个应用程序 随着时间的推移 它会变得相当庞大 我决定使用JsDoc3 and DocStrap记录所有模块 模块是通过 require js 定义的 在某些地方它们的嵌套深度可达 3 或 4 层 到目前为止 我了解到 JsDoc
  • 生成 DTMF 音

    我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法 我正在尝试生成 DTMF 音调 但似乎找不到任何实质性内容 我还希望能够指定播放音调的时间 即模拟按住按钮而不是简单地按下按钮 我发现了一个名为 iPhreak 的开源应用程