使用 python的高通和低通滤波器

我的意思是每当我在电脑上播放任何音频时,我都希望低通滤波器实时过滤音频,并在音频放大器的左声道(我的低音炮)上传递该音频,高通滤波器将音频传递到我的音频放大器的右声道(高音扬声器)并同时在左右声道上播放它们。

我的意思是每当我在电脑上播放任何音频时,我都希望低通滤波器实时过滤音频,并在音频放大器的左声道(我的低音炮)上传递该音频,高通滤波器将音频传递到我的音频放大器的右声道(高音扬声器)并同时在左右声道上播放它们。

我成功地使用 Python 创建了一个高通滤波器,但它在两个通道上播放,并且在播放之前必须将其保存到 wav。我希望它从我的计算机的音频中实时获取音频,然后将其实时转换为相应的右或左音频通道。

这是我在 stackoverflow 上找到的高通滤波器的代码:

import matplotlib.pyplot as plt
import numpy as np
import wave
import sys
import math
import conteib
fname = 'Lil Nas X  Industry Baby Lyrics ft Jack Harlow.wav'
outname = 'filtered.wav'
cutOffFrequency = 400.0
def running_mean(x, windowSize):
  um = np.um(np.insert(x, 0, 0)) 
  return (um[windowSize:] - um[:-windowSize]) / windowSize
def interpret_wav(raw_bytes, n_frames, n_channels, sample_width, interleaved = True):
    if sample_width == 1:
        dtype = np.uint8 # unsigned char
    elif sample_width == 2:
        dtype = np.int16 # signed 2-byte short
    else:
        raise ValueError("Only supports 8 and 16 bit audio formats.")
    channels = np.fromstring(raw_bytes, dtype=dtype)
    if interleaved:
        # channels are interleaved, i.e. sample N of channel M follows sample N of channel M-1 in raw data
        channels.shape = (n_frames, n_channels)
        channels = channels.T
    else:
        # channels are not interleaved. All samples from channel M occur before all samples from channel M-1
        channels.shape = (n_channels, n_frames)
    return channels
with conteib.closing(wave.open(fname,'rb')) as spf:
    sampleRate = spf.getframerate()
    ampWidth = spf.getsampwidth()
    nChannels = spf.getnchannels()
    nFrames = spf.getnframes()
    signal = spf.readframes(nFrames*nChannels)
    spf.close()
    channels = interpret_wav(signal, nFrames, nChannels, ampWidth, True)
    freqRatio = (cutOffFrequency/sampleRate)
    N = int(math.sqrt(0.196196 + freqRatio**2)/freqRatio)
    filtered = running_mean(channels[0], N).astype(channels.dtype)
    wav_file = wave.open(outname, "w")
    wav_file.setparams((1, ampWidth, sampleRate, nFrames, spf.getcomptype(), spf.getcompname()))
    wav_file.writeframes(filtered.tobytes('C'))
    wav_file.close()

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(483)
XamarinForms样式Xaml中标签的大写字体
上一篇
如何在Outlook2007电子邮件中嵌入图像或视频
下一篇

相关推荐

  • python中def用法详解定义函数的基本方法

    示例示例def 关键字用于定义函数,是Python中定义函数的必备关键字,它的语法格式如下:def 函数名(参数列表):…

    2023-04-14 01:48:49
    0 88 62
  • python股票数据:利用Python技术分析股票市场行情

    Python股票数据是指通过Python编程语言从股票市场获取股票数据的过程。它可以帮助投资者快速、准确地获取当前股票的价格、成交量和其他相关信息,以便做出更好的投资决策。…

    2023-06-27 08:07:46
    0 89 83
  • python乘法表倒三角9×9

    Python乘法表倒三角是指以下形式的乘法表:1*1=1…

    2023-05-02 12:43:17
    0 37 69
  • python图片文字识别代码解锁新的信息发现之旅

    Python图片文字识别代码是使用Python语言来实现从图片中识别文字的功能,可以帮助我们快速提取图片中的文字信息。下面是一段Python图片文字识别的代码:…

    2023-04-29 01:22:43
    0 43 25
  • python画波形图探索数据的时间序列趋势

    Python可以使用库来绘制波形图。下面是一个简单的例子,使用正弦函数绘制一个波形图:…

    2023-05-10 08:55:12
    0 21 58
  • python的yield方法:利用Python的yield方法提升编程效率

    示例示例yield 是一个类似 return 的关键字,只是这个函数返回的是一个生成器。Python 中 yield 的作用就是把一个函数变成一个 ,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 ,调用 yield 的函数不再是调用函数,而是生成一个 。…

    2023-04-10 04:13:58
    0 18 31
  • python灰度化:如何使用Python实现图像灰度化

    Python灰度化是指将图像从彩色变为灰度图像的过程,使用灰度图像可以更容易地识别和处理图像中的特征。Python灰度化的代码如下:…

    2023-04-21 01:15:37
    0 17 25
  • python入参:从Python参数创建可靠的应用程序

    Python入参是指在Python函数中传递参数的方式。Python函数可以接受不定数量的参数,可以是位置参数、关键字参数、默认参数、可变参数和命名参数。下面是一个示例代码:…

    2024-02-28 07:41:01
    0 34 12

发表评论

登录 后才能评论

评论列表(27条)