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.
- 1. Quel est le moyen le plus simple de récupérer une page Web en C?
- 2. NSMutableArray. Quel est le moyen le plus rapide pour le convertir en un tableau C simple?
- 3. Quel serait le moyen le plus simple de traiter un fichier texte en utilisant JSP?
- 4. Quel est le moyen le plus simple de styler le ScrollViewer en XAML
- 5. Quel est le moyen le plus simple d'offrir/de consommer des services web en jython?
- 6. Quel est le moyen le plus simple d'utiliser la commande HEAD de HTTP en PHP?
- 7. Quel est le moyen le plus simple et le plus rapide pour mesurer les performances HD en utilisant Python?
- 8. Quel est le moyen le plus simple de convertir un fichier de données SO de HTML en Markdown?
- 9. Un éditeur pour un objet de données en swing, quel est le moyen le plus simple?
- 10. Quel est le moyen le plus simple en Perl pur de diffuser à partir d'une autre ressource HTTP?
- 11. Quel est le moyen le plus simple de décrémenter une date en Javascript d'un jour?
- 12. Quel est le moyen le plus simple de changer l'adresse proxy Windows en utilisant le code .NET?
- 13. Quel est le moyen le plus simple de renvoyer la première ligne d'une chaîne multiligne en Perl?
- 14. Le moyen le plus simple d'incrémenter une date en PHP?
- 15. Quel est le moyen le plus simple de cloner un webservice?
- 16. Quel est le moyen le plus simple d'utiliser le code source C dans une application Java?
- 17. Quel est le moyen le plus simple pour convertir un const const [] en une chaîne en C++?
- 18. Quel est le moyen le plus simple de vérifier qu'une connexion réseau est disponible?
- 19. Quel est le moyen le plus rapide de dédupliquer une chaîne en C# (ASP.net)
- 20. Quel est le moyen le plus simple de stocker des données d'un programme Java à MySQL?
- 21. Quel est le moyen le plus simple de fusionner deux vidéos FLV?
- 22. Le moyen le plus simple de créer une zone de défilement en utilisant wxPython?
- 23. Quel est le moyen le plus simple d'ajouter des informations de version automatique aux tables MSSQL?
- 24. Quel est le meilleur moyen de faire throbber en C#?
- 25. Quel est le moyen le plus simple d'obtenir du XML indenté avec des retours à la ligne depuis XmlDocument?
- 26. Quel est le moyen le meilleur et le plus rapide pour écrire dans le fichier Excel en utilisant C#?
- 27. Quel est le moyen le plus simple de charger de l'argent sur Internet?
- 28. Quel est le moyen le plus simple de découper de gros fichiers XAML dans mon application?
- 29. Quel est le moyen le plus simple de savoir si un param de type implémente une interface dans C# 2.0?
- 30. java: moyen le plus simple de peupler un bean en utilisant les paramètres de servlet
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