【问题标题】:RealTime Pitch Shifting using TarsosDSP on Android在 Android 上使用 TarsosDSP 进行实时音高转换
【发布时间】:2016-05-23 08:42:09
【问题描述】:

这就是我想要的:
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");

如果我删除此行,一切正常,只有歌曲不会录制到文件中。
如果有人可以提供帮助,请告诉我。

【问题讨论】:

    标签: android pitch-shifting tarsosdsp


    【解决方案1】:

    使用不依赖 JVM 的 WriterProcessor 类解决了这个问题。

    参考:https://github.com/JorenSix/TarsosDSP/issues/64

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2010-11-30
      相关资源
      最近更新 更多