Как воспроизвести звук PCM-24? - PullRequest
0 голосов
/ 28 сентября 2018

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

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

auriculares: headphones|conexión inalámbrica: wireless connection

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

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

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

1 Ответ

0 голосов
/ 28 сентября 2018

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

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

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

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

...