Quiero muestrear continuamente desde la línea de audio de mi PC utilizando C# (luego procesar esos datos). ¿Cuál es la mejor manera de hacer el muestreo?¿Cuál es la forma más sencilla de muestrear continuamente desde la línea de entrada utilizando C#
Respuesta
Puede hacer algo de captura de audio (básica) usando la biblioteca de audio NAudio de fuente abierta. Eche un vistazo al proyecto NAudioDemo para ver un ejemplo simple de grabación en un archivo WAV usando las funciones de WaveIn. NAudio ahora también incluye la capacidad de capturar audio usando WASAPI (Windows Vista y superior) y ASIO (si su tarjeta de sonido tiene un controlador ASIO).
No hay bibliotecas integradas en .NET Framework para tratar el sonido, pero si tiene Win32, puede usar una biblioteca no administrada como DirectSound para hacerlo.
Ianier Munoz muestra how to write a full-duplex audio player in C# using waveIn via P/Invoke en CodeProject. Menciona Managed DirectSound como un método más general.
También existe la biblioteca Alvas Audio, no gratuita, tiene una pantalla fastidiosa si no paga, pero funciona muy bien. Y la documentación es buena y, si encuentra un error o algo, el soporte también está bien.
DirectX administrado admite la captura directa de audio y es muy fácil de usar, pero ya no es compatible y se eliminó del DirectX SDK el año pasado. Todavía es posible get it instalando una versión de SDK antes de agosto de 2007.
Aunque no cumple estrictamente con sus requisitos, un enfoque más sólido sería crear un ensamblado de envoltura C++/CLI alrededor de la API nativa C++ DirectSound, nuevamente desde el DirectX SDK. Esto podría llamarse directamente desde el código C#. Este es definitivamente un enfoque más poderoso y sostenible, a pesar de requerir cierto conocimiento de C++ y COM.
He utilizado estas dos técnicas en el pasado y ambas funcionan bien.
- 1. ¿Cuál es la forma más sencilla de convertir char [] a/de tchar [] en C/C++ (ms)?
- 2. ¿Cuál es la forma más sencilla de obtener resultados de scripts de Python en la web?
- 3. C++: ¿Cuál es la forma más sencilla de leer y escribir archivos BMP utilizando C++ en Windows?
- 4. ¿Cuál es la forma más sencilla de conectar un dispositivo a un iPad desde una aplicación?
- 5. ¿Cuál es la forma más sencilla de mostrar httpServletResponse.sendError (403, "Mi Mensaje") Estado de JSTL
- 6. ¿Cuál es la forma más sencilla de escribir bibliotecas portátiles cargables dinámicamente en C++?
- 7. ¿Cuál es la forma más sencilla de actualizar la plataforma haskell a la última?
- 8. Cuál es la forma más sencilla de obtener la latitud y la longitud de un usuario desde una dirección IP
- 9. ¿Cuál es la forma más fácil de animar una línea?
- 10. ¿Cuál es la forma más sencilla de crear una ventana con forma en wxPython?
- 11. ¿Cuál es la forma más sencilla de devolver la primera línea de una cadena multilínea en Perl?
- 12. VBScript: ¿Cuál es la forma más sencilla de formatear una cadena?
- 13. ¿Cuál es la forma más rápida de obtener la media de un conjunto de números desde la línea de comando?
- 14. Forma más sencilla para enviar mensajes cortos utilizando TCP/IP
- 15. C#: ¿cuál es la forma más sencilla de ordenar los nombres de directorio y elegir el más reciente?
- 16. ANTLR ¿Cuál es la forma más sencilla de realizar una gramática dependiente de sangría de pitón?
- 17. ¿Cuál es la forma más sencilla de formatear una marca de tiempo de SQL en PHP?
- 18. ¿Cuál es la forma más sencilla de realizar una solicitud HTTP GET en Perl?
- 19. ¿Cuál es la manera más rápida de muestrear rebanadas de matrices numpy?
- 20. ¿Cuál es la forma más sencilla de implementar el cifrado en WCF cuando se usa netTcpBinding?
- 21. ¿Cuál es la forma más eficiente de copiar de forma masiva a SQL Server desde Java?
- 22. ¿Cuál es la forma más sencilla de exportar datos de Excel a Matlab?
- 23. ¿Cuál es la forma más sencilla de cargar dinero a través de Internet?
- 24. C#: ¿cuál es la forma más fácil de restar tiempo?
- 25. Entrada desde la línea de comando
- 26. Objective-c/IOS: ¿Cuál es la forma más sencilla de reproducir un archivo de audio al revés
- 27. ¿Cuál es la forma más sencilla de escribir aplicaciones web en Haskell?
- 28. ¿Cuál es la forma más sencilla de ofrecer/consumir servicios web en jython?
- 29. ¿Cuál es la forma más sencilla de intercambiar char en una cadena con Python?
- 30. ¿Qué significa "lambda" en Python, y cuál es la forma más sencilla de usarlo?
Vi esta pregunta hoy (2014), ¿ha cambiado algo hasta ahora? ¿NAudio tiene alguna característica nueva con respecto al muestreo de audio en tiempo real según la pregunta OP? – heltonbiker