可変速再生、オーディオ原理分析と実装

[時間:2019から05] [ステータス:開く]
[キーワード:オーディオ、オーディオ、速度、可変速度、ピッチ、soundtouch、ソニック]

オーディオトーンシフト原理の分析

音声処理理論への最初:

变速变调可分为:变速不变调和变调不变速。

语音变速不变调是指保持音调和语义保持不变,语速变快或变慢。该过程表现为语谱图在时间轴上如手风琴般压缩或者扩展。那也就是说,基频值几乎不变,对应于音调不变;整个时间过程被压缩或者扩展,声门周期的数目减小或者增加,即声道运动速率发生改变,语速也随之变化。对应于语音产生模型,激励和系统经历与原始发音情况几乎相同的状态,但持续时间相比原来或长或短。

严格地讲,基频和音调是两个不同的概念,基频是指声带振动的频率,音调是指人类对基频的主观感知,但是两者变化基本一致,即基频越高,音调越高,基频越低,音调越低,音调是由基频决定的。因此,语音变调不变速就是指改变说话人基频的大小,同时保持语速和语义不变,即保持短时频谱包络(共振峰的位置和带宽)和时间过程基本不变。对应于语音产生模型,变调改变了激励源;声道模型的共振峰参数几乎不变,保证了语义和语速不变。

综上所述,变速改变声道运动速率,力求保持激励源不变;变调改变激励源,力求保持声道的共振峰信息不变。但是声源和声道不是相互独立的,在改变声源时,必然也会非线性的影响声道,同样地,改变声道时也会或多或少的影响声源,两者之间相互影响,相互作用。

音声トーンは、より一般的にボイス変更ソフトウェアで使用されます。そして、音声伝送は、2倍速再生(高速再生、スロー放送)として、プレイヤーに使用します。この記事ではスピードに焦点を当てています。
ビデオ・フレームまたは補間フレームスキッピングに対する相対移動の原理に基づきます。簡単なポンプ音のサンプリングポイントが不連続、貧しいノイズや破裂音、主観的経験を引き起こす可能性があるので、オーディオ伝送原理は、それほど単純ではありません。
だから、いくつかの簡単なオーディオ処理戦略は、通常、例えば、X2速度に:(動作しません)

1.再生装置を実現、サンプリングレートが非常に倍増される再生装置の再生、単位時間当たりのサンプルの再生数を倍に設けられ、倍速変化は同じ曲が、音の不連続を実現することができます。
PCMを再生する前に2.倍速を実現することができるオリジナルのサンプリングレートの半分にリサンプリングされていますが、トーンます。
3.ドロップフレームは、一人一人は、あなたが倍速を実現することができ、1失うが、友人ノイズのとげとげの友人があるだろう、と音が断続的に、非常に悪い経験を生成します。

利用可能なプログラム

したがって、より良い主観的な経験を達成するために、比較的高度な音声処理戦略を使用するためです。soundtouchとソニック:今、より一般的なオーディオ伝送には2つのソリューションを提供しています。

ソニックを使用してsoundtouch、EXOPlayerを使用してijkplayer。

Androidで一の実装はシフト再生AudioTrackコードに基づいて、存在する以下の通りであります:

    PlaybackParams params = audioTrack.getPlaybackParams();
    //params.setSpeed(1.0f);  // available
    //params.setSpeed(0.5f);  // available
    params.setSpeed(1.5f);  // not available
    audioTrack.setPlaybackParams(params);

詳細な使用は、参照提案PlaybackParamsを

ソニックSoundtouchの使用など、パッケージ化されて提供されるライブラリ、例えば倍速などのターゲットフォーマットへのインターフェース処理機能を介して、元のPCMオーディオデータは、PCMサンプルを半分に切断してもよいです。
ここでSoundtouchインターフェースは、以下の使用を例示するための例を提供します。

クラスのインタフェースパラメータ:

  • setChannels(INT)設定されたチャネル、1 =モノラルモノラル、2 =ステレオサウンド
  • setSampleRate(UINT)は、サンプルレートを設定します
  • setRate(ダブル)指定された再生速度、1.0の元の値、大小遅い速いです
  • (ダブル)setTempoはビート、1.0の元の値を、指定大型速い遅い小さな
  • setRateChange(二重)、1.0に基づいて元の速度で(二重)setTempoChange、百分率増分は、値を行い(-50 .. + 100%)
  • (ダブル)setPitchは階調値、1.0の元の値を指定します
  • [-1.00、+ 1.00]の値を調整するために、元のトーンのオクターブ単位に基づいてsetPitchOctaves(二重)
  • [-12、+ 12]の値を調整半音単位で元のトーンに基づいsetPitchSemiTones(INT)

PCM処理クラスインタフェース:

  • putSamples(CONST SAMPLETYPE *サンプル、UINT nSamples)入力サンプル・データ
  • receiveSamples(SAMPLETYPEの*の出力、UINT maxSamples)が必要実行するデータ出力処理ループ
  • 最後のグループフラッシュの「残基」、のうち()データ処理パイプラインは、最後に実行されます

このような観点から、従来のデコーダまたはマルチプレクサロジック復調と同様のインターフェース。

概要

のみ以降の参考のために、Soundtouch、ソニックとAudioTrack 3つのオプションを含め、まとめたAndroidプラットフォームのオーディオ伝送方式のトーンのオーディオ伝送の理論、および現在入手可能。

参考資料

  1. オーディオの速度(同じ転送速度)が達成され、
  2. 原理と方法のトーンシフト
  3. SoundTouch公式サイト
  4. 問題のijkplayerスピードトーンソリューション
  5. オーディオトーン用のシフトSoundTouch

おすすめ

転載: www.cnblogs.com/tocy/p/audio-tune-speed-change.html