неизвестный формат аудио - где копать?

На моем телефоне Android (Philips Xenium W632) у меня есть возможность записи звонков собственной программой (без каких-либо внешних программ, эта опция включается в сервисном меню). Проблема в том, что полученный формат неизвестен ни одному из проигрывателей, которые я пробовал. Глядя на содержимое, кажется, что файлы не запакованы и не зашифрованы, так что, вероятно, распознать формат для человека, знакомого с этой областью, не составит особого труда. Я предполагаю, что этот вопрос, вероятно, слишком специфичен, чтобы задавать его на SO, но я просто не знаю активных форумов, где общаются такие люди. Поэтому я был бы признателен за любую подсказку для такого рода ресурсов. Советы по более правильным заголовкам / тегам для этого вопроса также будут оценены.

Техническая информация: файлы имеют имена типа "Mon_Apr_2013__10_48_56.vm", все начинаются с заголовка 0x66 0xAA и имеют около 7,9 кб записи в секунду. Я, конечно, могу предоставить образцы файлов.

УПД. 1) Примеры файлов помещаю сюда: запись 10 секунд, 133 кБ; 122 секунды записи, 975 КБ

2) Предполагая, что это своего рода «файл Samsung VoiceMemo», я сначала попробовал преобразователь QualComm PureVoice, затем приложение PureVoice, затем Samsung PC Studio версии 7.2.24.9 — все не удалось.

3) Пробовал MediaInfo (спасибо @Jan за предложение) - он не смог распознать файлы.


person Vasily A    schedule 14.04.2013    source источник
comment
Здесь не совсем по теме, но есть буклет с информацией о продукте говорит, что он основан на Adaptive Multi-Rate (что имело бы смысл). С другой стороны, согласно filext.com (см. эту запись на форуме и страницу с расширением файла .vm), похоже, что Samsung использует то же расширение и что оно основано на на кодеке Qualcomm. Любой из них может стоить попробовать.   -  person jerry    schedule 17.04.2013
comment
спасибо @jerry, я также предположил, что это может быть AMR (поэтому я добавил к вопросу тег «AMR»), но, по крайней мере, файлы не могут быть распознаны как обычные AMR. В этом телефоне также есть стандартное приложение Sound Recorder, которое сохраняет свои файлы в формате .amr, читаемом любым другим программным обеспечением (вероятно, информация в листовке относится к этой опции). Я также пробовал некоторые программы Qualcomm и Samsung (см. обновление вопроса. Возможно, не правильная версия?) - пока не повезло.   -  person Vasily A    schedule 17.04.2013
comment
Что ж, тогда удачи. Я знаю, что это долгий путь, но, возможно, обращение в Philips поможет.   -  person jerry    schedule 17.04.2013


Ответы (5)


Попробуйте MediaInfo. Он может подсказать вам практически любой кодек и формат аудио- и видеофайлов на планете. Если не получится, залейте файл куда-нибудь, я посмотрю.

person Jan Petzold    schedule 17.04.2013
comment
Спасибо @Jan. К сожалению, MediaInfo не смогла распознать файлы. Я обновил сообщение со ссылками на мои образцы файлов. - person Vasily A; 17.04.2013
comment
Извините за мой поздний ответ. Я проверил файл и не смог его воспроизвести. Я все еще хотел бы сохранить свой ответ здесь, так как он может помочь другим. В крайнем случае можно воспроизвести звук на телефоне и записать его через микрофон или аналоговый вход вашей звуковой карты — качество пострадает, но, по крайней мере, содержимое не потеряется. - person Jan Petzold; 22.04.2013

Попробуйте FFmpeg(ffmpeg -i file) или MPlayer(mplayer -identify). Если вам нужно перезаписать файлы, посмотрите, сможете ли вы записать их с помощью разъема для наушников. Таким образом, потери качества минимальны.

person kirbyfan64sos    schedule 23.04.2013

Сумасшедший длинный план: если это необработанные данные (133 КБ / 10 секунд, это немного похоже на несжатый 16-битный моно IIRC), то вы можете попробовать написать программу, которая считывает некоторые данные и рисует график. Если это выглядит как достаточно красивая кривая, то нужно преобразовать эту программу для вывода звукового файла, а не рисовать кривую - я почти уверен, что для таких вещей есть библиотеки для различных языков программирования.

person TV's Frank    schedule 23.04.2013

Перепробовал кучу инструментов, единственный, который дал что-то, что не звучало как циркулярная пила, был, когда я попытался преобразовать файл, используя кодировку LPC или LPC10 через «sox».

Конечно, это нельзя назвать «записью голоса», так как это звучит как приглушенное бормотание.

Вот что я сделал:

mv Sun_Apr_2013__18_11_58.vm Sun_Apr_2013__18_11_58.lpc
sox Sun_Apr_2013__18_11_58.lpc Sun_Apr_2013__18_11_58.wav

mv Sun_Apr_2013__18_11_58.vm Sun_Apr_2013__18_11_58.lpc10
sox Sun_Apr_2013__18_11_58.lpc10 Sun_Apr_2013__18_11_58.wav

Sox — это своего рода подход грубой силы, но, как кто-то еще предположил, метод аналогового кабеля может быть вашим лучшим выбором.

person Wing Tang Wong    schedule 23.04.2013

Это какой-то тяжелый случай. Я исследовал несколько вещей, которые могут помочь в идентификации файла. Спойлер: у меня тоже не получается корректно воспроизвести файл.

Заголовок файла

Заголовок файла 66 A2 C2 00 в шестнадцатеричном формате. По этому маршруту ничего нельзя найти в сети.

Инструмент Linux file

Выполнение file на любом из образцов не дает значимых результатов.

$ file *.vm 
Sun_Apr_2013__18_11_58.vm: data
Sun_Apr_2013__18_23_11.vm: data

Исследование файловой структуры

Пожалуй, самые интересные результаты дает просмотр шестнадцатеричного дампа файлов. Вот выдержка из случайного места в меньшем файле:

0001-ea10:  12 02 14 00-70 00 00 00-43 45 15 75-e4 51 00 04  ....p... CE.u.Q..
0001-ea20:  00 00 cc 00-0b 0b 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ea30:  3f 00 3f 00-10 27 00 00-00 00 00 00-00 00 00 00  ?.?..'.. ........
0001-ea40:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ea50:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ea60:  00 00 00 00-00 00 07 20-68 5f 6b b7-7c 84 07 00  ........ h_k.|...
0001-ea70:  0f cf 00 74-14 a1 22 44-4c 9f a7 34-80 bc ce f0  ...t.."D L..4....
0001-ea80:  21 07 ae 87-4e 6f 00 00-16 7a eb cd-c5 47 42 26  !...No.. .z...GB&
0001-ea90:  73 08 04 de-60 85 8d de-15 a4 85 10-c0 fe 1a 8f  s...`... ........
0001-eaa0:  35 32 f8 c6-bb 5f 0a 00-34 f0 e9 a9-35 a8 9f f8  52..._.. 4...5...
0001-eab0:  44 81 5c 24-3f 11 97 52-cb 1a 64 86-21 14 5d d9  D.\$?..R ..d.!.].
0001-eac0:  93 b1 1a 32-ad 49 07 00-66 aa c2 00-84 3a 91 00  ...2.I.. f....:..
0001-ead0:  2b 05 12 02-14 00 70 00-00 00 43 45-15 75 e4 51  +.....p. ..CE.u.Q
0001-eae0:  00 08 00 00-cc 00 0b 0b-00 00 00 00-00 00 00 00  ........ ........
0001-eaf0:  00 00 3f 00-3f 00 10 27-00 00 00 00-00 00 00 00  ..?.?..' ........
0001-eb00:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-eb10:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-eb20:  00 00 00 00-00 00 00 00-07 20 55 04-7a 33 8c 28  ........ ..U.z3.(
0001-eb30:  11 c0 3c 0f-00 df 20 75-5e 05 73 61-8e 67 07 4c  ..<....u ^.sa.g.L
0001-eb40:  b1 82 41 52-f5 54 51 0a-00 00 aa 20-2f 6c 9f 04  ..AR.TQ. ..../l..
0001-eb50:  f7 59 14 11-15 c5 08 2d-d9 f4 aa 64-19 65 3c 9d  .Y.....- ...d.e<.
0001-eb60:  a2 80 32 38-16 0c a2 2e-01 00 34 f0-e9 a9 35 a8  ..28.... ..4...5.
0001-eb70:  9f f8 44 81-5c 24 3f 11-97 52 cb 1a-64 86 21 14  ..D.\$?. .R..d.!.
0001-eb80:  5d d9 93 b1-1a 32 ad 49-07 00 66 aa-c2 00 89 3a  ]....2.I ..f....:
0001-eb90:  91 00 2b 05-12 02 14 00-70 00 00 00-43 45 15 75  ..+..... p...CE.u
0001-eba0:  e4 51 00 0c-00 00 cc 00-0b 0b 00 00-00 00 00 00  .Q...... ........
0001-ebb0:  00 00 00 00-3f 00 3f 00-10 27 00 00-00 00 00 00  ....?.?. .'......
0001-ebc0:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ebd0:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ebe0:  00 00 00 00-00 00 00 00-00 00 07 20-2d 7a 37 35  ........ ....-z75
0001-ebf0:  70 92 88 88-07 68 00 17-d0 43 0c d3-f2 c9 49 1c  p....h.. .C....I.
0001-ec00:  42 bd 57 70-7a fc 41 e0-67 cb 00 00-b4 5e 76 0c  B.Wpz.A. g....^v.
0001-ec10:  fd 23 74 31-19 bc 3b 1e-9e a8 86 29-cc 81 24 0e  .#t1..;. ...)..$.
0001-ec20:  d4 3a c2 9b-18 40 6b da-3a 2a 02 00-34 f0 e9 a9  .:...@k. :*..4...
0001-ec30:  35 a8 9f f8-44 81 5c 24-3f 11 97 52-cb 1a 64 86  5...D.\$ ?..R..d.
0001-ec40:  21 14 5d d9-93 b1 1a 32-ad 49 07 00-66 aa c2 00  !.]....2 .I..f...
0001-ec50:  8d 3a 91 00-2b 05 12 02-14 00 70 00-00 00 43 45  .:..+... ..p...CE
0001-ec60:  15 75 e4 51-00 10 00 00-cc 00 0b 0b-00 00 00 00  .u.Q.... ........
0001-ec70:  00 00 00 00-00 00 3f 00-3f 00 10 27-00 00 00 00  ......?. ?..'....
0001-ec80:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ec90:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-eca0:  00 00 00 00-00 00 00 00-00 00 00 00-07 20 71 15  ........ ......q.
0001-ecb0:  35 b5 74 80-00 80 51 3b-80 7f 3a 0f-e0 19 6e 2d  5.t...Q; ..:...n-
0001-ecc0:  0a 03 e3 80-7d 5a a8 fb-0a 0d fa 66-00 00 8e 28  ....}Z.. ...f...(
0001-ecd0:  d6 cd df 07-64 07 dd 89-3b af 08 0a-61 06 11 98  ....d... ;...a...
0001-ece0:  04 78 1a 82-7f 4d 7a 08-cf 6a e9 7c-0c 00 34 f0  .x...Mz. .j.|..4.
0001-ecf0:  e9 a9 35 a8-9f f8 44 81-5c 24 3f 11-97 52 cb 1a  ..5...D. \$?..R..
0001-ed00:  64 86 21 14-5d d9 93 b1-1a 32 ad 49-07 00 66 aa  d.!.]... .2.I..f.
0001-ed10:  c2 00 91 3a-91 00 2b 05-12 02 14 00-70 00 00 00  ...:..+. ....p...
0001-ed20:  43 45 15 75-e4 51 00 14-00 00 cc 00-0b 0b 00 00  CE.u.Q.. ........
0001-ed30:  00 00 00 00-00 00 00 00-3f 00 3f 00-10 27 00 00  ........ ?.?..'..
0001-ed40:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ed50:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ed60:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 07 20  ........ ........
0001-ed70:  28 71 63 90-c9 2a 13 40-1f 6a 80 97-88 b6 61 82  (qc..*.@ .j....a.
0001-ed80:  8e 95 41 67-78 8a d0 46-50 d0 74 06-1a b8 00 00  ..Agx..F P.t.....
0001-ed90:  14 0e e3 29-2d 09 87 a7-52 17 13 19-b0 80 da b0  ...)-... R.......
0001-eda0:  02 4c 39 e9-03 d2 30 95-7a b2 0b 12-0e 7b 0a 00  .L9...0. z....{..
0001-edb0:  34 f0 e9 a9-35 a8 9f f8-44 81 5c 24-3f 11 97 52  4...5... D.\$?..R
0001-edc0:  cb 1a 64 86-21 14 5d d9-93 b1 1a 32-ad 49 07 00  ..d.!.]. ...2.I..
0001-edd0:  66 aa c2 00-96 3a 91 00-2b 05 12 02-14 00 70 00  f....:.. +.....p.
0001-ede0:  00 00 43 45-15 75 e4 51-00 18 00 00-cc 00 0b 0b  ..CE.u.Q ........
0001-edf0:  00 00 00 00-00 00 00 00-00 00 3f 00-3f 00 10 27  ........ ..?.?..'
0001-ee00:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ee10:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........
0001-ee20:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00  ........ ........

Посмотрите, например. для шаблона CE, повторяющегося через равные промежутки времени и меняющегося по всему файлу. Некоторые наблюдаемые интервалы составляют 159 и 192 байта. Знак CE не всегда присутствует в файле; иногда это проявляется как cE или как-то иначе. Очевидно, что в файле присутствуют кадры более или менее постоянной длины.

Воспроизведение файла в формате PCM

Достаточно постоянное соотношение длины и времени воспроизведения предполагает простую схему кодирования. Наиболее простой используемой схемой кодирования будет ИКМ — одна неизменная выборка на интервал выборки.

Если вы принудительно воспроизведете файл как файл с импульсно-кодовой модуляцией (т. е. файл wav в мире Windows) с помощью команды Linux, такой как

aplay -c 2 -f S16_LE Sun_Apr_2013__18_11_58.vm

вы слышите отчетливые фазы разных, довольно однообразных шумов. Вероятно, они вызваны разной длиной кадра, о которой говорилось выше. Однако нет никаких указаний на речь или что-то подобное, что можно было бы ожидать, если бы это была просто смесь прямого и прямого байтов. Это говорит о том, что здесь используется более продвинутая схема кодирования.

Документация

Доступная документация дает намек на использование кодека AMR. Однако в нем говорится, что это используется для записи голоса (что, вероятно, должно быть прочитано как функция диктовки). Ни в одной англоязычной документации, которую я видел, ни в беглом поиске в гугле упоминаний о записи звонков нет. Запись звонков, вероятно, является региональной функцией.

Вывод

Наличие большого количества нулей указывает на то, что этот формат не был оптимизирован по размеру. Обычные файлы AMR не содержат таких областей последовательных нулей.

Наличие фреймов переменной длины в двоичных данных указывает на расширенный формат. В сочетании с нулями это также более или менее исключает любую зашифрованную полезную нагрузку (поскольку это также запутывает нулевые области).

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

Примечательно, что Philips также производит записывающие устройства для диктовки, в которых используется собственный формат файла .dss. Они рекламируются как оптимизированные для файлов небольшого размера, что не относится к этим файлам.

Таким образом, я готов поспорить на то, что это AMR-кодированный файл с нестандартным заголовком и, возможно, также с нестандартным форматом файла в целом.

Как продолжить это расследование

  • Поищите опыт других людей в регионе (и языке), где вы купили этот телефон. Судя по всему, функция записи звонков отсутствует в моделях для США и Великобритании.
  • Напишите в Philips, чтобы узнать о формате и о том, как воспроизвести его на ПК. Это может быть самый простой маршрут
  • Исследуйте отдельные кадры, чтобы выявить сходство между тем, что у вас есть, и кадрами, которые должны выглядеть в AMR или подобных кодеках.
  • просто запишите сообщения, используя аналоговую ссылку, и сэкономьте много времени :)
person likeitlikeit    schedule 23.04.2013