'daki bir ses dosyasından nasıl bir dizi float üretebilirim Scipy'deki io.wavfile.read işlevine benzer şekilde, mp3 ve wav ses dosyalarını float veya double dizileri olarak yüklemek istiyorum. Bunu mikrofon verileriyle yapabilir veya ses akışını bir arabelleğe yazarak ses çalabilirim. Ancak, bir ses dosyasının tüm verilerini bir kerede nasıl yükleyeceğimi bilmiyorum. Swift
- Güncellemegelecekte ses sinyali verileri ile çalışan herkes için, burada hile yapan bir fonksiyondur. Ritmik Fistman'ın cevabına dayanıyor.
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))
}
'göz at EZAudio': https://github.com/syedhali/EZAudio – dfri
Güzel bir kütüphane, teşekkürler. Swift'de çalışmam için sorun yaşıyorum, sorumu güncelleyeceğim. – Alizaybak