在Android上使用TarsosDSP实现实时音高变换

在Android上使用TarsosDSP实现实时音高变换,android,pitch-shifting,tarsosdsp,Android,Pitch Shifting,Tarsosdsp,以下是我想要的: 1.播放歌曲时的实时音高变化。 2.音调偏移也应记录到文件中 代码: double rate = 1.0; RateTransposer rateTransposer; AudioDispatcher dispatcher; WaveformSimilarityBasedOverlapAdd wsola; dispatcher = AudioDispatcherFactory.fromPipe(mAudiopath, 44100, 50

以下是我想要的:
1.播放歌曲时的实时音高变化。
2.音调偏移也应记录到文件中

代码:

    double rate = 1.0;
    RateTransposer rateTransposer;
    AudioDispatcher dispatcher;
    WaveformSimilarityBasedOverlapAdd wsola;

    dispatcher = AudioDispatcherFactory.fromPipe(mAudiopath, 44100, 5000, 2500);
    rateTransposer = new RateTransposer(rate);
    wsola = new WaveformSimilarityBasedOverlapAdd(WaveformSimilarityBasedOverlapAdd.Parameters.musicDefaults(rate, 44100));
    WaveformWriter writer = new WaveformWriter((TarsosDSPAudioFormat) dispatcher.getFormat(), BASE_PATH + "Recorded" + File.separator + "PITCHED_" + mVideoFileName + ".mp3");

    wsola.setDispatcher(dispatcher);
    dispatcher.addAudioProcessor(wsola);
    dispatcher.addAudioProcessor(rateTransposer);
    dispatcher.addAudioProcessor(new AndroidAudioPlayer(dispatcher.getFormat()));
    dispatcher.setZeroPadFirstBuffer(true);
    dispatcher.setZeroPadLastBuffer(true);
    dispatcher.addAudioProcessor(writer);
但在这里,我面临以下错误:

Error:(362, 41) error: cannot access AudioFormat
class file for javax.sound.sampled.AudioFormat not found
用于线路

   WaveformWriter writer = new WaveformWriter((TarsosDSPAudioFormat) dispatcher.getFormat(), BASE_PATH + "Recorded" + File.separator + "PITCHED_" + mVideoFileName + ".mp3");
如果我删除这一行,一切正常,只有歌曲不会录制到文件中。

请告诉我是否有人可以帮忙。

这个问题是使用WriterProcessor类解决的,它不依赖于JVM

裁判: