ffmpeg - Python PyAudio 模仿 ffmpeg
问题描述
我在 Ubuntu 中有一个音频实用程序,它以流方式处理音频数据,我们称之为/bin/speech_to_text_transcription
.
我可以通过管道传输到它,从麦克风流式传输 WAV 数据,如下所示:
ffmpeg -hide_banner -loglevel error \
-f pulse -i default \
-acodec pcm_s16le \
-ar 16000 -ac 1 -ab 256k \
-f wav - \
| /bin/speech_to_text_transcription
如您所见,我正在将一个以 16kHz 采样的单声道 WAV 音频文件输入到/bin/audio_process
. 我知道上述工作,因为我看到成功的输出过程
我想使用 Python 模拟类似的设置PyAduio
,这样我就可以运行与上面相同的设置,如下所示:
python stream_audio.py | /bin/speech_to_text_transcription
我需要这样做,因为我的目标主机没有安装 FFmpeg。
import pyaudio
import pickle, sys
chunk = 1024 # Record in chunks of 1024 samples
sample_format = pyaudio.paInt16 # 16 bits per sample
channels = 1
fs = 16000 # Record at 16000 samples per second
seconds = 1000
p = pyaudio.PyAudio() # Create an interface to PortAudio
stream = p.open(format=sample_format,
channels=channels,
rate=fs,
frames_per_buffer=chunk,
input=True)
for i in range(0, int(fs / chunk * seconds)):
data = stream.read(chunk)
pickle.dump(data, sys.stdout.buffer)
但是,我无法模仿设置。可能缺少什么?
谢谢
解决方案
推荐阅读
- c++ - 在对短字符串编码的有理数执行算术时,浮点的简单替代方案
- javascript - 按多个值过滤对象数组
- python-3.x - Pygame 协助
- r - 双循环与应用或咕噜族
- servlets - 如何正确连接我的 servlet 和我的帖子表单?
- java - 随机字符串的集合,以及带有随机字符的每个字符串(java)
- arduino - 在 Arduino Micro 上,有没有办法通过引脚连接使用“串行”端口?
- php - 有没有办法判断用户是否点击了我的谷歌广告?
- python - Keras 模型错误,引用不兼容的目标形状,但模型摘要并未表明它是错误的
- r - 将信息添加到有条件地比较字符串的列