python - 在线程中使用384000Hz的PyAudio

标签 python multithreading audio pyaudio

我正在尝试在树莓派3上使用m500-384麦克风录制大块超声波。如果这是唯一的运行过程,那么我只能录制好音频,但是当我尝试在树莓派3中录制音频时出现问题。在主线程中执行循环时使用单独的线程。音频线程无法跟上并错过读数。有没有更有效的方式来录制音频?

现在,我正在使用PyAudio录制音频,而我仅使用常规线程。

最佳答案

要确认您的录音采样率为384Khz,请向我们显示在您的一个录音文件上发出该录音的输出

例如 :

ffprobe myaudiofile.wav

...输出说
ffprobe version N-86279-gac8dfcbd89 Copyright (c) 2007-2017 the FFmpeg developers
  built with gcc 6.3.0 (Ubuntu 6.3.0-12ubuntu2) 20170406
  configuration: 
  libavutil      55. 63.100 / 55. 63.100
  libavcodec     57. 96.101 / 57. 96.101
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 90.100 /  6. 90.100
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
Input #0, wav, from 'Cesária_Évora_Live_au_Bataclan-jYGcobbQAnQ_mono.wav':
  Metadata:
    encoder         : Lavf57.72.101
  Duration: 00:00:21.51, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 1 channels, s16, 705 kb/s

请告诉我们最后一行怎么说?如上所示,我的文件采样率为44100 Hz ...您看到384000 Hz吗?

如果像树莓派3这样的SOC计算机可以提供384000 Hz的采样率,我会感到惊讶,但是我想错了...为了以如此高的采样率记录音频,硬件必须对传入的模拟音频进行采样每2.60416微秒弯曲一次

发出此命令以查看您的硬件的功能(在ubuntu上发布)
cat /proc/asound/card0/codec#2

在输出中,这是重要的部分
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000

我的ubuntu笔记本电脑在上面说...您看到384000吗?

关于python - 在线程中使用384000Hz的PyAudio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45228736/

相关文章:

c# - 从后台线程更新 UI

ios - swift Realm::In CorrectThreadException:从错误的线程访问 Realm

multithreading - Lua 脚本协程

iphone - 如何开发具有混响功能的 iPhone 应用程序?

python - 自动调整 IPython 小部件布局

python - pip安装numpy失败错误代码1

python - 添加数据库模块

python - 无法弄清楚如何向文本文件添加行号

android - Soundpool vs Mediaplayer,可播放多种音效

c++ - 搜索 Active Sound 时断言失败错误