tensorflow - 使用 `tf.audio.decode_wav` 读取 `wav` 文件
问题描述
我正在关注 simple_audio 的 tensorflow 音频识别教程。笔记本很好用。
下一步,我想录制自己的声音,然后通过 tensorflow 训练的模型运行它。我首先生成了一段录音:
seconds=1
sr=16000
nchannels=1
myrecording = sd.rec(int(seconds * sr), samplerate=sr, channels=nchannels)
sd.wait()
wavfile.write(filename, sr, myrecording)
到目前为止一切顺利,我可以播放我的录音了。但是当我尝试加载tf.audio.decode_wav
类似于此的文件时:
audio_binary = tf.io.read_file(filename)
audio, _ = tf.audio.decode_wav(audio_binary)
我收到以下错误:
InvalidArgumentError:WAV 的音频格式错误:预期为 1 (PCM),但得到了 3 [Op:DecodeWav]
非常感谢任何有关可能出错的指示。
解决方案
(会写这个作为评论,但我还没有足够的声誉)
WAV 文件的默认编码称为“16 位 PCM”,这意味着录制的声音在写入 WAV 文件之前使用 16 位 int 数据表示。
tf.audio.decode_wav()
文档中的状态:“将 16 位 PCM WAV 文件解码为浮点张量”。因此,使用任何其他编码(在您的情况下为 24 位编码)传递 WAV 文件会导致像您收到的错误一样。
推荐阅读
- python - Sqlalchemy - 使用 InternalError 关闭游标 Traceback 时出错:找到未读结果
- sql - Sql按userId查询前两行分组
- php - 为什么在 Symfony 中使用相同的盐和密码调用 encodePassword()(或 hashPasswor())会产生不同的哈希?
- android - 'view' 没有设置 NavController,NavigationUI 在点击时带有drawerLayout
- css - 如何在 R 闪亮的 selectizeInput 组标题中设置字体颜色?
- c++ - 如何递归地“从头到尾打印列表”?
- vuetify.js - Vuetify 2.x:点击时 v-data-table 展开行
- comments - 使用 Eclipse RAP 添加 HTML 注释
- r - 如何将反应性rhandsontable重置为默认值?
- flutter - 我可以在 Flutter 中使用变量 with( paddin : EdgeInsets.only(top: 8.0) ) 代替 (8.0) 吗?