0

在树莓派上,我正在尝试使用 gstreamer 将音频录制为 .flac 或 .wav 文件。

我希望将音频文件发送到非官方的谷歌语音 api 服务器

但我的 gstreamer 管道输出为 wav

 gst-launch-0.10 -e  alsasrc device=hw:1 ! audioconvert ! audioresample ! audio/x-raw-int, depth=16, rate=16000, channels=1 ! wavenc ! filesink location= o.wav

或作为flac

 gst-launch-0.10 -e  alsasrc device=hw:1 ! audioconvert ! audioresample ! audio/x-raw-int, depth=16, rate=16000, channels=1 ! flacenc ! filesink location= o.flac

总是被拒绝。

错误:(错误的文件格式或错误的采样率)

{"status":5,"id":"11e0fa5e371b2f0a1a87def81f8383bc-1","hypotheses":[]}

使用 sox 进行正常录制并使用 ffmpeg 或 flac 进行编码正在工作,所以我猜 gstreamer 的输出文件不知何故损坏了,或者我错过了一些东西

编辑: 使用 -v http://hastebin.com/vovefeyewe.vbs运行的管道在 alsasrc 之后添加了一个队列,但仍然是同样的问题

解决了

附加参数解决了问题

 gst-launch-0.10 -e -v alsasrc device=hw:1 ! audioconvert ! audioresample ! "audio/x-raw-int, rate=(int)16000, channels=(int)1, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true, channles=(int)1" ! wavenc ! filesink location=g.wav

如果没有声音或只有随机噪音,谷歌将拒绝带有(错误格式错误)的文件

4

1 回答 1

2

您可以在管道中添加 -v 选项并发送输出吗?

于 2013-10-20T08:39:06.913 回答