請問如何讀寫寄存器

測試pyaudio抓取音頻,
import pyaudio
import wave
FORMAT = pyaudio.paInt16
CHANNELS = 6
RATE = 8000 #44100
RECORD_SECONDS = 1.8
WAVE_OUTPUT_FILENAME = “file.wav”
chunk = 3600
audio = pyaudio.PyAudio()
stream = audio.open(format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True,
#input_device_index = SEL_INPUT_DEVICE,
frames_per_buffer = chunk)

結果出現
[92845.081231] clk_pdm_frac parent_rate(589823999) is low than rate(40960000)*20, fractional div is not allowed

請問:

  1. 怎麼解決?
  2. 如何讀寫寄存器?

试一下其他采样率
你要读写什么寄存器

飞神 发表于 2019-3-26 14:42
试一下其他采样率
你要读写什么寄存器

我想要調整pdm clk相關寄存器去解決這個問題.

  1. 參考Rockchip Audio开发指南: cat /sys/kernel/debug/clk/clk_summary只能看到clk相關寄存器值, 但要如何寫值到寄存器卻沒說.
  2. RK3308_VAD_寄存器配置_v1.1.pdf有說明如何讀寫VAD寄存器值, 但clk目錄卻沒有reg子目錄, 因此無法使用類似方法寫入clk相關寄存器的值.

請協助

我用8000HZ录音没有问题啊,不需要改时钟啊

飞神 发表于 2019-3-27 14:49
我用8000HZ录音没有问题啊,不需要改时钟啊

8kHz 不夠用

其他频率也没问题啊,频率大于16000时,录音需要加上这些参数。http://wiki.t-firefly.com/ROC-RK3308-CC/faq.html#lu-yin

飞神 发表于 2019-3-28 09:30
其他频率也没问题啊,频率大于16000时,录音需要加上这些参数。http://wiki.t-firefly.com/ROC-RK3308-CC/f

那是用arecord可以, 用pyaudio就有問題, 但是arecord沒法放在python裡面, 所以才想調適寄存器看看

我觉得既然arecord可以,那么肯定不是底层问题,是否排查下pyaudio。

飞神 发表于 2019-3-28 16:18
我觉得既然arecord可以,那么肯定不是底层问题,是否排查下pyaudio。

pyaudio抓6麥, 存檔播放是沒問題.
只是聲音有點頓挫, 因此想解決[92845.081231] clk_pdm_frac parent_rate(589823999) is low than rate(40960000)*20, fractional div is not allowed這個問題, 看看會不會改善.

我也会遇到过这个时钟打印问题,不过暂时还没有找到问题点,日后我解决了该问题再分享出来。

我也遇到pyaudio存檔聲音有點頓挫, [92845.081231] clk_pdm_frac parent_rate(589823999) is low than rate(40960000)*20, fractional div is not allowed 的問題 , 請問有解了嗎?

peterhao 发表于 2019-4-19 18:09
我也遇到pyaudio存檔聲音有點頓挫, [92845.081231] clk_pdm_frac parent_rate(589823999) is low than rate …

我也遇到了,请问你们怎么解决的?