mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2024-12-19 04:37:51 +00:00
whisper.android : support decode wav file has 2 channels (#972)
This commit is contained in:
parent
d7c936b44a
commit
ce6f747064
@ -10,12 +10,16 @@ fun decodeWaveFile(file: File): FloatArray {
|
||||
file.inputStream().use { it.copyTo(baos) }
|
||||
val buffer = ByteBuffer.wrap(baos.toByteArray())
|
||||
buffer.order(ByteOrder.LITTLE_ENDIAN)
|
||||
val channel = buffer.getShort(22).toInt()
|
||||
buffer.position(44)
|
||||
val shortBuffer = buffer.asShortBuffer()
|
||||
val shortArray = ShortArray(shortBuffer.limit())
|
||||
shortBuffer.get(shortArray)
|
||||
return FloatArray(shortArray.size) { index ->
|
||||
(shortArray[index] / 32767.0f).coerceIn(-1f..1f)
|
||||
return FloatArray(shortArray.size / channel) { index ->
|
||||
when (channel) {
|
||||
1 -> (shortArray[index] / 32767.0f).coerceIn(-1f..1f)
|
||||
else -> ((shortArray[2*index] + shortArray[2*index + 1])/ 32767.0f / 2.0f).coerceIn(-1f..1f)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user