python-3.x - 将 .wav 音频文件设置复制到新的 .wav 文件

标签 python-3.x ffmpeg wav speech-to-text kaldi

目前我正在使用一个语音到文本的翻译模型,该模型采用 .wav 文件并将音频中的可听语音转换为文本转录本。该模型之前曾用于直接录制的 .wav 音频录音。但是现在我正在尝试对视频中最初出现的音频做同样的事情。
步骤如下:

  • 通过 ffmpeg
  • 从流 url 中检索视频文件
  • 从视频中删除 .aac 音频
  • 将 .aac 音频转换为 .wav
  • 将 .wav 保存到 s3 以备后用

  • 下面列出了我使用的 ffmpeg 命令以供引用:
      rm /tmp/jonas/*
      ffmpeg -i {stream_url} -c copy -bsf:a aac_adtstoasc /tmp/jonas/{filename}.aac
      ffmpeg -i /tmp/jonas/{filename}.aac /tmp/jonas/{filename}.wav
      aws s3 cp /tmp/jonas/{filename}.wav {s3_audio_save_location}
    
    现在的问题是我的语音到文本模型不再适用于该音频。我使用 sox 转换音频,但 sox 似乎没有抓取音频。同样没有 socks ,模型也不起作用。这让我相信 .wav 音频格式和 是有区别的。因此,我想知道如何使用与 .wav 相同的设置格式化 .wav,它确实有效 找到一种方法来比较 .wav 音频格式并通过 ffmpeg 手动将新的 .wav 设置为正确格式
    我尝试使用 PyPy exiftool 并找到了这两个文件的元数据:
    工作 .wav 文件的元数据是 enter image description here
    不起作用的 .wav 文件的元数据是 enter image description here
    因此可以看出,工作的 .wav 文件有一些不同的设置,我想在第二个 .wav 文件中模仿这些设置,大概这会使我的模型再次工作:)
    亲切的问候,
    乔纳斯

    最佳答案

    我找到了答案,需要将 .aac 到 .wavs 的转换调整为以下行:

    ffmpeg -i /tmp/jonas/{filename}.aac -ac 1 -ar 8000 /tmp/jonas/{filename}.wav
    
    .aac 直接从视频中复制。 -ac 调整 channel 的数量。 -ac 调整采样率

    关于python-3.x - 将 .wav 音频文件设置复制到新的 .wav 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64891035/

    相关文章:

    android - 在视频上添加文本和图像后。视频质量的输出丢失

    ffmpeg:在 RGB channel 上计算 PSNR

    java - Wav文件的标题 block 大小错误

    由于 UnboundLocalError,Python3 方法无法调用

    python-3.x - 如何删除并仅保留某些非字母数字字符?

    python - 为什么我的元组值会改变 (Python)?

    python - 尝试使用 itertools.permutations 时出现 MemoryError,如何使用更少的内存?

    linux - 在 Linux 中使用 FFMPEG 覆盖 TS 流文件

    python - 识别 wav 文件中的 channel ?

    java - 同步 2 个相似的音频输入(一个通过文件,一个通过麦克风)