【问题标题】:Converting from .WAV to .txt or .dat with ffmpeg?使用 ffmpeg 从 .WAV 转换为 .txt 或 .dat?
【发布时间】:2019-09-27 06:41:39
【问题描述】:

我需要将 .WAV 转换为 ASCII 文本文件,以便在我的脚本中使用。 FFMpeg 可以将 .wav 转换为 .raw:

ffmpeg -i input.wav -f s16le -acodec pcm_s16le output.raw

但我无法将 .raw 转换为 .txt 或 .dat。 我知道 hexdump,但我需要在 Windows 中工作的东西。

关于如何进行这项工作的任何建议,或从 .wav 转换为 .txt 的其他方法?

【问题讨论】:

标签: ffmpeg


【解决方案1】:

ffmpeg 是一种工具,用于在各种压缩格式与原始音频和视频数据之间对音频和视频进行编码和解码,并从各种容器格式封装或提取各种流。它没有任何功能来解释数据的含义,例如识别音频中的单词或视频中的形状。 (尽管您可能可以从视频中提取字幕文本)

解释人类语音是一个“难题”,仍然是许多公司和大学积极研究的课题。语言和方言(以及不断演变的新词)使这变得特别困难。

如果您想要一些免费的东西,您可以在脚本中运行而无需访问 Internet 服务,您需要查看像 CMU SphinxJuliusKaldi 这样的软件

我尝试过 Sphinx 和 Juluis,但结果喜忧参半。很久以前了,所以我建议您尝试所有 3 个版本的最新版本,看看哪个版本可以为您正在使用的特定音频提供最佳性能。

【讨论】:

  • 优秀且有效的答案,但我只是想将信号中的数据点转换为 ASCII 值列表。即:在以 48kHz 采样的正弦波中,我想知道列表中的所有这些值。
  • 嘿,好的。您能否更新问题以更好地描述您正在寻找的这种格式?我从未听说过有人将音频处理为文本数字。如果我想在 C 程序中将 WAV 文件转换为整数数组,我只需将 .raw 加载到内存中,然后将其类型转换为 int16_t。如果我想加载到像 perl 这样的基于文本的脚本语言,我会unpack "s*", $raw_buffer。事实上,如果你在 windows 上安装了 perl,它是一个简单的 1-liner。
  • 就此而言,如果您只需要 hexdump,您可以安装 cygwin
猜你喜欢
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 2016-10-02
  • 1970-01-01
相关资源
最近更新 更多