Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <noise-20241025174236@ram.dialup.fu-berlin.de>
Deutsch   English   Français   Italiano  
<noise-20241025174236@ram.dialup.fu-berlin.de>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!fu-berlin.de!uni-berlin.de!not-for-mail
From: ram@zedat.fu-berlin.de (Stefan Ram)
Newsgroups: comp.lang.python
Subject: Re: How to check whether audio bytes contain empty noise or actual voice/signal?
Date: 25 Oct 2024 16:43:11 GMT
Organization: Stefan Ram
Lines: 31
Expires: 1 Jul 2025 11:59:58 GMT
Message-ID: <noise-20241025174236@ram.dialup.fu-berlin.de>
References: <CAGJtH9TqEpGjQi+KYNrSV3+UtVO-jjFLK02N9MEA0uuQvr11qQ@mail.gmail.com> <mailman.48.1729873488.4695.python-list@python.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de jvhDOWm/P4B5ZUBLguC+/wHCx14UWSxZqWI8uzrTLzuW4A
Cancel-Lock: sha1:x5ArkzpHqMyDSc5HqV842/KNA8k= sha256:1cERKZnEiOpEiQRUFUzHbHkLM+ElPDqNdg7ZpgwuBIE=
X-Copyright: (C) Copyright 2024 Stefan Ram. All rights reserved.
	Distribution through any means other than regular usenet
	channels is forbidden. It is forbidden to publish this
	article in the Web, to change URIs of this article into links,
        and to transfer the body without this notice, but quotations
        of parts in other Usenet posts are allowed.
X-No-Archive: Yes
Archive: no
X-No-Archive-Readme: "X-No-Archive" is set, because this prevents some
	services to mirror the article in the web. But the article may
	be kept on a Usenet archive server with only NNTP access.
X-No-Html: yes
Content-Language: en-US
Bytes: 2685

marc nicole <mk1853387@gmail.com> wrote or quoted:
>I hope this question is not very far from the main topic of this list, but
>I have a hard time finding a way to check whether audio data samples are
>containing empty noise or actual significant voice/noise.

  The Spectral Flatness Measure (SFM), also called Wiener entropy, can
  separate the wheat from the chaff when it comes to how noise-like
  a signal is. This measure runs the gamut from 0 to 1, where:
  1 means you've hit pay dirt with perfect white noise (flat spectrum),
  0 is as pure as a Napa Valley Chardonnay (single frequency).
  (Everything in between is just different shades of gnarly.)

import numpy as np
from scipy.signal import welch

def noiseness(signal, fs):
    # Compute the power spectral density
    f, psd = welch(signal, fs, nperseg=min(len(signal), 256))
    
    # Compute geometric mean of PSD
    geometric_mean = np.exp(np.mean(np.log(psd + 1e-10)))
    
    # Compute arithmetic mean of PSD
    arithmetic_mean = np.mean(psd)
    
    # Calculate Spectral Flatness Measure
    sfm = geometric_mean / arithmetic_mean
    
    return sfm