2017-02-28 3 views
1

私はSuperpowered iOSライブラリを使用してオーディオを分析し、BPM、ラウドネス、ピッチデータを抽出しています。私はiOS Swift 3.0プロジェクトに取り組んでおり、ObjCのブリッジヘッダーを使ってSwiftでCクラスを動作させることができました。オーディオトラックをBPMでセグメントに分割し、Superpowered iOSを使用して各セグメントを分析します。

私は、デコーダオブジェクトを作成し、音楽ライブラリからオーディオを抽出し、.WAVとして保存することができますが、この問題は、抽出されたオーディオのスニペット用のデコーダオブジェクトを作成できません。アナライザクラスを取得してデータを返します。次のように

私のアプローチは、デコーダオブジェクトを作成することであった:

var decodeAttempt = decoder!.open(self.originalFilePath, metaOnly: false, offset: offsetBytes, length: lengthBytes, stemsIndex: 0) 

「offsetBytes」と「LengthBytes」私が思うには、オーディオファイル内の位置です。私はすでにオーディオを圧縮解除してWAVとして保存し、ここでデコーダに提供しています.4400 x 2 x 16/8 = 176400バイト/秒のPCM Waveオーディオ式を使用してオフセットと長さを計算しています。次にこれを使用して、開始点と長さをバイト単位で指定します。デコーダが「不明なファイル形式」を返すので、これを行う正しい方法であるかどうかはわかりません。

この質問のタイトルを達成するためのアイデアや代替提案がありますか?前もって感謝します!

答えて

1

バンドルされたオーディオファイルがパッケージに単純に連結されるAndroid APKファイル形式のため、SuperpoweredDecoderのオフセットと長さのパラメータがあります。

WAVファイルは可能な限り「圧縮されていない」ものですが、先頭にヘッダーがあるため、オフセットと長さはこの目的には適していません。特にヘッダーは先頭にのみ存在し、ヘッダーのデコードはできません。

PCMにオーディオを抽出して(WAVに保存する)ことができます。あなたは答えをあなたの手に持っています:SuperpoweredOfflineAnalyzerの異なるインスタンスに異なる抽出部分を提出するだけです。

+0

ありがとうございましたGabor - 私は最初は同じ考えを持っていましたが、「オフセット、長さ」のパラメータを見て、それがWAVファイルと関係があると思ったときに横行しました。 –

関連する問題