gpt4 book ai didi

android - 使用 Superpowered 在 Android 中进行音高转换/时间拉伸(stretch)

转载 作者:行者123 更新时间:2023-12-03 00:31:56 25 4
gpt4 key购买 nike

我需要从视频中提取音频并通过使用搜索栏(something like this)改变音高来实时改变音高。
性能需要接近实时。
现在至少我需要转换音频(某人.aac音频文件)。
我找到了一个 Superpowered 库,但示例没有实现音高转换,并且文档不包含有关它的信息。
有人做过吗?或者也许可以帮助我使用另一个库?

我发现这个 example
现在我正在尝试这样做:

bool NDKAudioPlayer::process(short *output, unsigned int numberOfSamples) {
double masterBpm = player->currentBpm;

bool silence = !player->process(stereoBuffer, false, numberOfSamples, volume, masterBpm);

if (!silence){
handler = new LiveTimeStretchingHandler();
setupLiveTimeStretching(handler, currentSamplerate);
liveTimeStretchingProcess(stereoBuffer, numberOfSamples, 0, handler);
delete handler;
}

// The stereoBuffer is ready now, let's put the finished audio into the requested buffers.
if (!silence) SuperpoweredFloatToShortInt(stereoBuffer, output, numberOfSamples);
return !silence;

}

这是我的 NDKAudioPlayer 类:
class NDKAudioPlayer {
public:

NDKAudioPlayer(unsigned int samplerate, unsigned int buffersize, const char *path, int audioFileOffset, int audioFileLength);
~NDKAudioPlayer();

bool process(short *pInt, unsigned int numberOfSamples);
void onPlayPause(bool play);
void onCentsChanged(int cents);

private:

SuperpoweredAndroidAudioIO *audioSystem;
SuperpoweredAdvancedAudioPlayer *player;
LiveTimeStretchingHandler *handler;
float *stereoBuffer;
float volume;
int currentSamplerate = 0;

};

最佳答案

也许这可以帮助遇到同样问题的人:
我已经使用 SuperpoweredAdvancedAudioPlayer 类的 setPitchShiftCents 方法实现了它。
此方法在播放音频时进行音高转换。

关于android - 使用 Superpowered 在 Android 中进行音高转换/时间拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47146507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com