повышение частоты дискретизации

у меня есть массив с байтами аудио raw pcm 8khz 16bit mono little endian. но вот мне его нужно нормально преобразовать в raw pcm 48khz 16bit stereo big endian. как это сделать? chatgpt :) дает ответ, но при преобразовании появляются артефакты. вот код который он давал:

@Throws(IOException::class)
fun convert8kHzTo48kHz(inputPCMData: ByteArray): ByteArray {
    val format8k = AudioFormat(8000f, 16, 1, true, false)
    val format48k = AudioSendHandler.INPUT_FORMAT

    val inputStream = AudioInputStream(
        ByteArrayInputStream(inputPCMData),
        format8k,
        (inputPCMData.size).toLong()
    )

    val convertedStream = AudioSystem.getAudioInputStream(format48k, inputStream)

    val outputStream = ByteArrayOutputStream()
    val buffer = ByteArray(4096)
    var bytesRead: Int
    while ((convertedStream.read(buffer).also { bytesRead = it }) != -1) {
        outputStream.write(buffer, 0, bytesRead)
    }

    convertedStream.close()
    return outputStream.toByteArray()
}

Ответы (0 шт):