Децибелы в аудиофайле (Как измерить уровень децибел в определенный момент времени во время постоянного изменения уровня шума вокруг микрофона)

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

Treyse
Сообщения: 2
ОС: Windows

Децибелы в аудиофайле

Сообщение Treyse »

Здравствуйте, хотелось бы узнать есть ли какая-нибудь библиотека для python или c# которая позволяла бы потоково измерять уровень децибел входящего через звуковую карту аудио? Как измерить уровень децибел в определенный момент времени во время постоянного изменения уровня шума вокруг микрофона? Для примера: Человек говорит в микрофон и мне надо измерить его громкость в децибелах через код.
Спасибо сказали:
Treyse
Сообщения: 2
ОС: Windows

Re: Децибелы в аудиофайле

Сообщение Treyse »

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class MicroPlayer : MonoBehaviour
{
public float sensitivity = 100; // чувствительность
public float loudness = 0; // получаемое число скорости персонажа
void Start()
{
AudioSource aud = GetComponent<AudioSource>();
aud.clip = Microphone.Start(null, true, 10, 44100); // определяем Микрофон, продолжительность записи, фреймы в секунде
while (!(Microphone.GetPosition(null) > 0)) { } // Ждем пока запись начнется
aud.Play();
}
void Update()
{
loudness = GetAveragedVolume() * sensitivity; // получаемое число скорости персонажа
}
float GetAveragedVolume() // метод получения громкости
{
AudioSource aud = GetComponent<AudioSource>();
float[] data = new float[256];
float a = 0f;
aud.GetOutputData(data, 0);
foreach (float s in data)
{
a += Mathf.Abs(s);
}
return a / 256;
}
}
Спасибо сказали: