Как воспроизводить звук PCM-24?

Я работаю над своей инженерной диссертацией по электронному эстетоскопу. Звук снимается с помощью микрофона I2S (Адафрут SPH0645), выходной сигнал которого состоит из 18 бит достоверных данных для каждой выборки. Из-за этого я решил использовать формат PCM-24 и смог воспроизводить и просматривать графику (фонокардиограмму) с помощью библиотеки .NET NAudio.

В рамках проекта в основном должны учитываться мобильные устройства с Android, которые должны быть подключены через TCP-сокет, созданный оборудованием (сервером), через который непрерывно передается звук в формате PCM-24. Следующее изображение проясняет работу:

Как воспроизводить звук PCM-24?

Я исследовал, что Android предоставляет Аудио трек в качестве собственной библиотеки для воспроизведения файлов PCM, но, похоже, поддерживает только PCM-8, PCM-16 и PCM-float, что, как я понимаю, требует более высокого уровня API.

Мне не удалось найти другую библиотеку, которая помогла бы мне с этой задачей, но это кажется странным, поскольку PCM-24 - еще один широко используемый стандарт. Есть ли способ воспроизвести звук PCM-24 на Android?

С другой стороны, если нет возможности сделать это, Какие проблемы я должен учитывать при уменьшении до PCM-16 или увеличении до PCM-32-FP, несмотря на необходимые значения обработки и заполнения?

1
0
525
1

Ответы 1

Я думаю, вы в значительной степени на правильном пути. Как вы можете видеть здесь, https://source.android.com/devices/audio/data_formats Android поддерживает широкий диапазон форматов внутренне, но только подмножество доступно, вероятно, для совместимости; см. здесь: https://developer.android.com/guide/topics/media/media-formats.

Я бы конвертировал в 16-битный PCM, как вы предлагаете. Сердцебиение или пульс - это медленный процесс по сравнению с частотной характеристикой и разрешением вашего датчика, поэтому вы будете в безопасности и не потеряете никакой информации для воспроизведения звука или отображения эхокардиограммы.

Будьте осторожны с переводом на 16 бит, убедитесь, что ваш PCM24 не использует странное позиционирование для слов, как это иногда бывает. Кроме того, достаточно сдвинуть сэмплы вправо.

Для дальнейшей обработки данных, такой как обнаружение аритмии или чего-то подобного, используйте исходные 24-битные сэмплы. Удачи!

Большое спасибо за ответ. Да, похоже, мне нужно было бы все перевести на PCM-16, и вы правы насчет поведения биений. Я сделаю это! Еще раз спасибо!

Mauro Bilotti 28.09.2018 18:30

Другие вопросы по теме