在特定频率上创建 MP3

Posted

技术标签:

【中文标题】在特定频率上创建 MP3【英文标题】:Creating MP3 on Specific frequency 【发布时间】:2014-08-02 10:46:47 【问题描述】:

您好,我想创建一个特定频率的 MP3 文件,我想要其中包括更高的频率(高于人类范围 22kHz)。 我已经尝试过 html5,但它无法记录谢谢

【问题讨论】:

您需要以编程方式进行吗? mp3 究竟应该包含什么?只是特定频率的波形,还是一些包含高频声音的音乐?另外,如何您尝试过使用 HTML5 吗?一些上下文可能会帮助我们帮助你:) 您需要使用 44100hz 以上的采样率进行录音,您是否使用麦克风录音?如果是,您的麦克风输入响应需要能够跟踪 22Khz 以上的频率(您的麦克风需要非常好) 【参考方案1】:

可用的最大频率受采样率的限制 - 查找奈奎斯特频率的概念 - 因此网络音频 API 可以处理 96kHz 的最大采样率,因此其最大频率将是远高于人类范围的一半。

声音的来源是什么?从麦克风合成或录制? Web Audio API 支持这两种技术——你需要什么平台?网络/笔记本电脑...? 什么语言 ? mp3 与压缩编解码器有关 - 未压缩的音频数据称为 PCM(脉冲编码调制),您可以更直接地将其保存为 WAV 格式。

要合成频率,只需将 sin 曲线上的点保存到缓冲区中即可 - 这是一些伪代码

var max_samples = 100;
var num_cycles = 8; // influences frequency
var curr_theta = 0.0;
var incr_theta = 2 * Math.PI / (max_samples * num_cycles); // 2 * PI is one Hz

for (var curr_sample = 0; curr_sample < max_samples; curr_sample++) 

   audio_buffer[curr_sample] = Math.sin(curr_theta); // store current sample
   curr_theta += incr_theta;

然后将此音频缓冲区保存到输出文件中 - 与采样率的重要主题分开的是位深度的概念 - 这是用于存储每个样本的分辨率 - 典型的音频使用 16 位作为每个样本的位深度 -如果您将上述 audio_buffer 中的每个条目存储为 16 位,那么您需要在文件保存步骤中将其切成 8 位字节(注意您的字节序)

【讨论】:

Web Audio API 的采样率取决于上下文,上下文取决于硬件、配置和浏览器。您无法设置采样率,而且我还没有看到可以达到 96kHz 的设备/浏览器组合。 (并不是说它不可能发生......)

以上是关于在特定频率上创建 MP3的主要内容,如果未能解决你的问题,请参考以下文章

Delphi:如何创建具有特定秒数的静音 MP3 文件?

在 Pandas 中,如何创建特定频率但仅适用于特定月份的索引?

从头开始创建一个 mp3 文件 C#

如何在 web.config 文件中为特定文件类型创建重定向?

在 Swift 中创建一个函数来播放特定频率的音调 [关闭]

如何使用javascript在特定播放点获取mp3的音量