Je veux échantillonner en continu à partir de la ligne audio de mon PC en utilisant C# (puis traiter ces données). Quelle est la meilleure façon de faire l'échantillonnage?Quel est le moyen le plus simple d'échantillonner en continu à partir de l'entrée de ligne en utilisant C#
Répondre
Vous pouvez effectuer une capture audio (de base) à l'aide de la bibliothèque audio .NET open source NAudio. Jetez un oeil au projet NAudioDemo pour voir un exemple simple d'enregistrement dans un fichier WAV en utilisant les fonctions WaveIn. NAudio inclut désormais la possibilité de capturer de l'audio en utilisant WASAPI (Windows Vista et supérieur) et ASIO (si votre carte son est équipée d'un pilote ASIO).
Il n'existe aucune bibliothèque intégrée dans le framework .NET pour gérer le son, mais si vous utilisez Win32, vous pouvez utiliser une bibliothèque non gérée comme DirectSound pour le faire. Ian12 Munoz montre how to write a full-duplex audio player in C# using waveIn via P/Invoke sur CodeProject. Il mentionne Managed DirectSound comme méthode plus générale.
Il ya aussi la bibliothèque Alvas Audio, pas gratuite, a un écran lancinante si vous ne payez pas, mais fonctionne magnifiquement. Et la documentation est belle et, si vous trouvez un bug ou quelque chose, le support est bien aussi.
Managed DirectX prend en charge la capture directe de l'audio et est très facile à utiliser, mais n'est plus supporté et a été supprimé du SDK DirectX l'année dernière. Il est toujours possible de get it en installant une version SDK d'avant août 2007.
Bien que ne répondant pas strictement à vos exigences, une approche plus robuste serait de créer un encapsuleur C++/CLI autour de l'API C++ DirectSound native, toujours à partir du SDK DirectX. Cela pourrait alors être appelé directement à partir du code C#. C'est certainement une approche plus puissante et maintenable, en dépit de la nécessité de connaître C++ et COM.
J'ai utilisé ces deux techniques dans le passé et elles fonctionnent bien.
J'ai vu cette question aujourd'hui (2014), est-ce que quelque chose a changé jusqu'ici? Est-ce que NAudio a une nouvelle fonctionnalité concernant l'échantillonnage audio en temps réel selon la question OP? – heltonbiker