导入tensorflow.keras后用sounddevice库记录的音频信号突然有杂音

问题描述

我有一个很奇怪的问题。我正在使用 python 开发语音命令分类应用程序,我正在使用 sounddevice 库来记录音频信号。如果我记录 10 秒的信号,它看起来像这样:

Waveform graph of silence and one word in the middle (don't mind the red and yellow lines).

但是,如果我在程序中也导入了tensorflow.keras,并且记录了同样的信号,开始的时候突然出现了一个峰值,图形变成了这个。播放信号后,我还可以听到短促的“哔”声。

Waveform graph after including 'import tensorflow.keras.' statement.

我已经多次复制了这个,我确信没有其他库导致了这种情况。你知道为什么会发生这种情况吗?这不是应用程序中的大问题,我可以解决它,但我只是很好奇和困惑,因为这个问题对我来说很陌生。

代码

import sounddevice as sd
from digit_spotting_service import * 
# tensorflow.keras is imported inside (at the top) of this module
from sif_splitting_service import *

SAMPLE_RATE = 22050

if __name__ == "__main__":

    sd.default.channels = 1
    sd.default.samplerate = SAMPLE_RATE

    print("Recording...")
    signal = sd.rec(SAMPLE_RATE * 10)
    sd.wait()
    print("Stopped")

    signal = signal[:,0]

    sss = SifSplittingService() 
    dss = DigitSpottingService()

    # "sif" stands for silence-isolated-frame

    sifs = sss.split(signal,SAMPLE_RATE)
    sss.visualize()

    for sif in sifs:
        digit = dss.predict(sif,SAMPLE_RATE)
        print("I think that the digit is {}.".format(digit))


解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...