C# 窗体 |我可以使用麦克风输入检测特定声音并让我的程序检测该特定声音并对其做出响应吗?

C# WinForms | Can I detect specific Sounds with a Microphone Input and let my program detect that specific sound and respond to it?

我目前正在尝试编写一个模拟拨号连接的 C# 程序。所以这是程序应该做的:

当我播放像 212 5678912 这样的 DTMF 音或来自 phone 的 Phone 振铃信号时,我的 Microphone 应该检测到该声音,并且当程序检测到该声音时应该做一个动作(这里:创建一个值并播放另一个声音)我不只播放 DTMF 声音!我像拨号一样播放频率!也许代码看起来像这样:

if(sound from mic detected) do
{
 send variable to programm
 programm reacts
}

这有可能吗?它对那个主题一无所知:'(感谢您的帮助!如果这不适用于 C# 但适用于 Java 或 Python 等其他语言,那么请告诉我,但我不知道'也不知道如何将另一种语言添加到 C# 程序中。_。没关系,感谢您的帮助!

详细说明@Jimi 的 link,使用 NAudio 和 DtmfDetection 很容易做到这一点。

using DtmfDetection.NAudio;
using NAudio.CoreAudioApi;
using NAudio.Wave;

static class Program
{
    static void Main(string[] args)
    {
        using var audioSource = new WasapiLoopbackCapture
        {
            ShareMode = AudioClientShareMode.Shared
        };

        using var analyzer = new BackgroundAnalyzer(audioSource);

        analyzer.OnDtmfDetected += dtmf => Console.WriteLine($"DTMF Detected: {dtmf}");

        _ = Console.ReadKey(intercept: true);
    }
}

更多信息:https://github.com/bert2/DtmfDetection