Как получить громкость с микрофона в децибелах в реальном времени?

254
17 апреля 2022, 17:40

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

Answer 1
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;
    }
}

Источник: https://www.cyberforum.ru/unity/thread1936399.html#4

READ ALSO
Значение из строки n, столбца m DataGrid записать в переменную

Значение из строки n, столбца m DataGrid записать в переменную

Есть DataGrid, в одном из столбцов всегда хранится одно и то же числовое значениеКак это самое значение записать в переменную типа int? Знаю, что...

195
Как &quot;сдвинуть&quot; коллекцию от n до m элементов?

Как "сдвинуть" коллекцию от n до m элементов?

У меня есть форма с кнопками "вперед" и "назад" условноПри нажатии на кнопку вперед, показываются следующие 5 элементов коллекции...

213
бесконечная 2D анимация заднего фона (C# unity)

бесконечная 2D анимация заднего фона (C# unity)

хочу сделать анимацию заднего фона в простой 2D игре, чтобы при нажатии на клавиши движения, вслед за персонажем начинал в нужную сторону двигаться...

166
Архитектура приложения(игры) на Unity

Архитектура приложения(игры) на Unity

Начал заниматься разработкой игр на UnityПри создании стали возникать проблемы с "чистотой" и "грамотностью" скриптов

190