【问题标题】:unknown audio format - where to dig into?未知的音频格式 - 在哪里挖掘?
【发布时间】:2013-04-06 13:49:21
【问题描述】:

在我的 Android 手机 (Philips Xenium W632) 上,我有一个通过自己的软件进行通话录音的选项(无需任何外部程序,此选项在服务菜单中打开)。问题是我尝试过的任何播放器都不知道生成的格式。从内容上看,文件似乎没有被打包或加密,因此对于熟悉该领域的人来说,识别格式可能不是很困难。我想这个问题可能过于具体,无法在 SO 上提出 - 但 我根本不知道这些人交流的活跃论坛。因此,我将不胜感激为此类资源提供任何提示。也将不胜感激有关此问题的更正确标题/标签的建议。

技术信息:文件的名称类似于“Mon_Apr_2013__10_48_56.vm”,均从标头 0x66 0xAA 开始,每秒记录约 7.9 kb。我当然可以提供示例文件。

UPD。 1)我把示例文件放在这里: 10 seconds recording, 133 kB; 122 seconds recording, 975 kB

2) 假设它是一种“Samsung VoiceMemo 文件”,我先尝试了QualComm PureVoice converter,然后是 PureVoice 应用程序,然后是 Samsung PC Studio 版本 7.2.24.9 - 都失败了。

3) 尝试过 MediaInfo(感谢@Jan 的建议)- 它无法识别文件。

【问题讨论】:

  • 这里不是真正的主题,但product info leaflet 说它是基于Adaptive Multi-Rate codec 的(这是有道理的)。另一方面,根据 filext.com(参见 this forum postthe .vm file extension page),三星似乎使用了相同的扩展名,并且它基于高通编解码器。任何一个都值得一试。
  • 感谢@jerry,我还认为这可能是 AMR(这就是我在问题中添加“AMR”标签的原因),但至少这些文件不能被识别为正常的 AMR。这款手机还具有标准的“录音机”应用程序,它以所有其他软件可读的 .amr 格式保存其文件(可能是此选项所指的传单信息)。我也尝试了一些高通和三星软件(请参阅问题的更新。可能不是正确的版本?) - 还没有运气。
  • 好吧,那么祝你好运。我知道这是一个长远的目标,但也许联系飞利浦会有所帮助。

标签: audio wav codec amr


【解决方案1】:

这是一个棘手的案例。我调查了一些可能有助于识别文件的事情。剧透:我也无法正确播放文件。

文件头

文件的标题是十六进制的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 播放文件

合理恒定的长度/播放时间关系暗示了一种简单的编码方案。使用中最简单的编码方案是 PCM - 每个采样间隔一个样本,不变。

如果您使用诸如

之类的 Linux 命令强制将文件作为脉冲编码调制文件(即 Windows 世界中的 wav 文件)播放
aplay -c 2 -f S16_LE Sun_Apr_2013__18_11_58.vm

您会听到不同的、相当均匀的噪音的不同阶段。它们可能是由上面讨论的不同帧长度引起的。但是,如果这只是一个大端/小端混合,则没有任何语音或任何类似的迹象。这表明这里使用了更高级的编码方案。

文档

可用的文档提示了 AMR 编解码器的使用。但是,它说这是用于录音(这可能是作为听写功能阅读的)。在我看到的任何英文文档中都没有提到录音电话,在粗略的谷歌搜索中也没有提到。通话录音可能是区域启用的功能。

结论

大量零的存在表明此格式尚未针对大小进行优化。常规 AMR 文件不包含此类连续为零的区域。

二进制数据中可变长度帧的存在表示高级格式。结合零,这也或多或少地排除了任何类型的加密有效负载(因为这也会混淆零区域)。

录音长度与文件大小之间相对恒定的比率表明这是一种相对简单的格式。然而,当以 PCM 播放时,实际录音中没有任何可听见的伪影,这表明格式更为复杂。

值得注意的是,飞利浦还生产使用专有文件格式.dss 的听写记录器。这些被宣传为针对小文件大小进行了优化-不适用于这些文件。

因此,我愿意打赌这是一个具有非标准标头的 AMR 编码文件,并且可能整体上也是一种非标准文件格式。

如何继续调查

  • 寻找其他人在您购买此手机的地区(和语言)的体验。看起来,通话录音功能在美国和英国型号中不存在。
  • 写信给飞利浦询问格式,以及如何在 PC 上播放。这实际上可能是最简单的路线
  • 调查各个帧,找出您拥有的帧与 AMR 或类似编解码器中的帧应该是什么样子之间的任何相似之处
  • 只需使用模拟链接记录消息即可节省大量时间 :)

【讨论】:

    【解决方案2】:

    尝试了一堆工具,唯一一个听起来不像电锯的工具是当我尝试通过“sox”使用 LPC 或 LPC10 编码转换文件时。

    当然,这真的不能称为“录音”,因为它听起来像是低沉的喃喃自语。

    这是我所做的:

    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 是一种蛮力方法,但正如其他人所建议的那样,模拟电缆方法可能是您最好的选择。

    【讨论】:

      【解决方案3】:

      疯狂的远景:如果它是原始数据(133 kB / 10 秒看起来有点像未压缩的 16 位单声道 IIRC),那么您可以尝试编写一个程序来读取一些数据并绘制图表。如果它看起来像一条足够漂亮的曲线,那么就是将该程序转换为输出声音文件而不是绘制曲线的问题 - 我很确定周围有用于各种编程语言的此类库。

      【讨论】:

        【解决方案4】:

        试试 FFmpeg(ffmpeg -i file) 或 MPlayer(mplayer -identify)。如果您确实需要重新录制文件,请查看是否可以使用耳机插孔进行录制。这样,质量损失最小。

        【讨论】:

          【解决方案5】:

          试试MediaInfo。它可以告诉您地球上几乎所有音频和视频文件的编解码器和格式。如果这不起作用,请将文件上传到某个地方,我可以看看。

          【讨论】:

          • 谢谢@Jan。不幸的是 MediaInfo 无法识别这些文件。我用我的示例文件的链接更新了帖子。
          • 抱歉我的回复晚了。我检查了文件,也无法播放。我仍然想在这里保留我的答案,因为它可能对其他人有所帮助。最后一种方法可能是在手机上播放音频并通过麦克风或声卡中的模拟进行录制 - 质量会受到影响,但至少内容不会丢失。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-03
          • 2014-01-25
          • 1970-01-01
          • 2014-02-11
          • 2011-11-24
          • 2011-03-04
          相关资源
          最近更新 更多