问题标签 [pitch-shifting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - OAL简单的音频通道
我正在使用 OALSimpleAudio,我的应用程序中有一组声音在播放,我试图将这组声音分组到一个“通道”中,然后通过该特定通道影响组的音高。
-(IBAction)sample001 {
}
-(IBAction)sample002 {
}
我需要将这两种声音都放入 1 个单声道中,这样我才能做这样的事情。也许?
-(IBAction)channel1 {
}
如果可能的话,我想改变同时播放的两个声音的音高吗?任何帮助都会很棒!
java - vlcj - 音频回调
在 vlcj 播放视频文件时,我需要音频数据回调。然后我想在该音频上添加一些效果(音高转换等)并直接输出声音。我在 vlcj 文档中找到了 vedio 缓冲区回调,但没有找到音频回调。
如果我能获得音频回调,我可以使用其他库,如 soundtouch 等......或者请让我知道其他替代方案,如 vlcj。
我刚刚在 Windows 上使用 nVLC + NAudio 取得了成功。
vlcj可以吗?我应该使用 gstreamer (gstreamer-java) 还是 MPlayer?
问候,-pph
ios - 如何将 AudioUnitSampleType 转换为与 Dirac LE 一起使用
我对这个问题越来越疯狂。我正在使用 Dirac LE 执行音高转换,但该库总是会为结果转换添加大量点击。我需要在 AudioUnit 的回调函数中实时进行转换。
除了转换之外,所有设置都工作正常。
我认为问题在于从 8.24(AudioUnitSampleType)转换为短类型(由 Dirac 使用)并返回到 8.24。
请问,任何人都可以发布一个工作示例吗?非常感谢!
signal-processing - 使用 FFT 进行频移
我一直在尝试一些不同的技术,我可以找到用于频率转换的方法(特别是我想将高频信号转换为较低的频率)。目前我正在尝试使用这种技术 -
将原始信号 x(t) 乘以: cos(2 PI dF t), sin(2 PI dF t) R(t) = x(t) cos(2 PI dF t) I(t) = x(t) sin(2 PI dF t) 其中 dF 是要偏移的增量频率。现在您有两个时间序列信号:R(t) 和 I(t)。使用 R(t) 作为实部,I(t) 作为虚部,进行复傅立叶变换。结果将是频移频谱。
我已将其解释为以下代码 -
这为我构建了一个包含交错实数和图像数据的数组,然后是 FFT。然后我反转 FFT,但我得到的输出非常乱码。与我认为的结果相比,结果似乎很大,虽然有一些频移信号的痕迹,但很难说,因为结果似乎大部分都很嘈杂。
我还尝试简单地旋转原始信号的标准 FFT 的数组值以获得频移,但无济于事。有没有更好的方法来做到这一点?
java - 如何修改声音文件Java的音高?
我有一个想要修改音高的声音文件。该文件存储在 MP3 中。我在互联网上搜索过,但未能找到任何可以让我修改音高的库或算法。
任何示例和/或文献将不胜感激
c# - c#wave文件的音高偏移
我目前正在尝试使用此算法对波形文件进行音高转换
https://sites.google.com/site/mikescoderama/pitch-shifting
这是我使用上述实现的代码,但没有运气。输出的波形文件似乎已损坏或无效。
代码很简单,除了音高偏移算法:)
- 它加载一个波形文件,读取波形文件数据并将其放入 byte[] 数组中。
- 然后它将字节数据“标准化”为 -1.0f 到 1.0f 格式(根据音高移位算法的创建者的要求)。
- 它应用音高移位算法,然后将标准化数据转换回 bytes[] 数组。
- 最后保存一个与原始波形文件具有相同标题和音高偏移数据的波形文件。
我错过了什么吗?
algorithm - MATLAB - 音高转换音频信号
我的小组正在开发一个简单的 MATLAB 图形用户界面 (GUI),它应该记录来自麦克风的音频 - 插入或内置到计算机中 - 并播放信号。到目前为止,我们已经完成了。我们的 GUI 还可以加载样本(.wav 文件等)并使用 GUI 上相同的“播放”按钮进行播放。我们有一个播放、录制、加载和保存按钮。现在对于加载或记录的样本的音高偏移......我们知道我们需要一个峰值拾取算法来找到信号的基本频率。然后我们认为我们可以将这些值中的每一个乘以一个常数来改变所有这些频率的音高。我们的目标是使用这个算法并将单独的班次分配给不同的按钮或单选按钮,我们可以在其中加载我们的样本,按下按钮并通过这样做来操纵音高,然后播放。使用峰值拾取算法会充分改变我们信号的音高,还是会在播放过程中搞砸信号?
(这不是实时处理)
android - 音频音高和速度修改
我需要修改音频的音高或速度,但需要单独进行。Android中是否有任何示例或任何为Android提供支持的库。
我想避免为此使用 NDK/JNI,因为我不太喜欢它。
我已经看过很多库,虽然他们有很好的教程,但我无法将它们导入 Eclipse Android 项目。帮助表示赞赏:-)
runtime - 如何在运行时使用 portaudio 更改音高(采样率)?
如何在运行时使用 portaudio 更改音高(采样率)?非常感谢。
audio - 更改音频缓冲区的音高
我正在尝试使用scriptprocessor更改缓冲区样本的音高,但是我需要什么样的公式来做到这一点?我不是在寻找确切的 js 代码,而只是在寻找一些通用的数学方法。我很想为此提供一些代码,因为第一个答案有很多公式,我不知道如何在 JS 中实现它。
我知道这是随着时间的推移,但根据这一点,它可以用 FFT 完成,但我不知道应该怎么做。