6
scipyのio.wavfile.read関数と同様に、mp3ファイルとwavオーディオファイルをfloatまたはdoubleの配列としてロードしたいとします。私はマイクのデータやオーディオストリームをバッファに書き込むことでこれを行うことができます。しかし、オーディオファイルのすべてのデータを一度に読み込む方法がわかりません。 Swiftのオーディオファイルからfloatの配列を生成するには
- 更新将来のオーディオ信号データを扱う人のためには、ここにトリックを行う機能です。これは、リズムフィストマンの答えに基づいています。
func loadAudioSignal(audioURL: NSURL) -> (signal: [Float], rate: Double, frameCount: Int) {
let file = try! AVAudioFile(forReading: audioURL)
let format = AVAudioFormat(commonFormat: .PCMFormatFloat32, sampleRate: file.fileFormat.sampleRate, channels: file.fileFormat.channelCount, interleaved: false)
let buf = AVAudioPCMBuffer(PCMFormat: format, frameCapacity: UInt32(file.length))
try! file.readIntoBuffer(buf) // You probably want better error handling
let floatArray = Array(UnsafeBufferPointer(start: buf.floatChannelData[0], count:Int(buf.frameLength)))
return (signal: floatArray, rate: file.fileFormat.sampleRate, frameCount: Int(file.length))
}
は 'を見てくださいEZAudio':https://github.com/syedhali/EZAudio – dfri
これは素晴らしいライブラリです。ありがとうございます。私はそれをSwiftで私のために働かせるのが難しいです、私は私の質問を更新します。 – Alizaybak