C'è un modo, in un C#, su un .NET, per elaborare l'audio "on-fly"? Ad esempio, se voglio valutare l'intensità media dell'audio al momento della registrazione (per questo, avrò bisogno di avere l'ultimo paio di millisecondi).Elaborazione audio "on-fly" (C#, WP7)
11
A
risposta
17
inizializzazione di un microfono, e l'elaborazione suoni registrati:
private void Initialize()
{
Microphone microphone = Microphone.Default;
// 100 ms is a minimum buffer duration
microphone.BufferDuration = TimeSpan.FromMilliseconds(100);
DispatcherTimer updateTimer = new DispatcherTimer()
{
Interval = TimeSpan.FromMilliseconds(0.1)
};
updateTimer.Tick += (s, e) =>
{
FrameworkDispatcher.Update();
};
updateTimer.Start();
byte[] microphoneSignal = new byte[microphone.GetSampleSizeInBytes(microphone.BufferDuration)];
microphone.BufferReady += (s, e) =>
{
int microphoneDataSize = microphone.GetData(microphoneSignal);
double amplitude = GetSignalAmplitude(microphoneSignal);
// do your stuff with amplitude here
};
microphone.Start();
}
ampiezza del segnale complessivo. Si possono trovare le medie non in tutti array di byte, ma in finestre più piccole per ottenere la curva di ampiezza:
private double GetSignalAmplitude(byte[] signal)
{
int BytesInSample = 2;
int signalSize = signal.Length/BytesInSample;
double Sum = 0.0;
for (int i = 0; i < signalSize; i++)
{
int sample = Math.Abs(BitConverter.ToInt16(signal, i * BytesInSample));
Sum += sample;
}
double amplitude = Sum/signalSize;
return amplitude;
}
Altre cose per la generazione di suoni on-the-fly, che possibile aiuto in futuro:
DynamicSoundEffectInstance generatedSound = new DynamicSoundEffectInstance(SampleRate, AudioChannels.Mono);
generatedSound.SubmitBuffer(buffer);
private void Int16ToTwoBytes(byte[] output, Int16 value, int offset)
{
output[offset + 1] = (byte)(value >> 8);
output[offset] = (byte)(value & 0x00FF);
}
Problemi correlati
- 1. Come scrivere applicazioni di elaborazione audio C++?
- 2. Elaborazione audio - Riconoscimento tonale
- 3. uwp Elaborazione audio AudioGraph
- 4. Librerie Mac per elaborazione audio/divisione file audio
- 5. Elaborazione audio in tempo reale su Android
- 6. Errore C/C++ pre-elaborazione
- 7. Stringhe mutabili in WP7 C#/XNA?
- 8. Elaborazione audio in tempo reale OpenAL dal microfono
- 9. Elaborazione audio AVFoundation utilizzando MPAudioProcessingTap di AVPlayer con URL remoti
- 10. Librerie di elaborazione immagini C++
- 11. Elaborazione parallela dei futures C++
- 12. elaborazione delle stringhe in c
- 13. UTF8 in elaborazione in C
- 14. Visualizzazione audio C#
- 15. migliore libreria audio c linux
- 16. Cattura uscita audio in C#
- 17. Elaborazione di file enormi in C#
- 18. Elaborazione di eventi complessi con C#
- 19. Sfondo sull'icona WP7
- 20. wp7 Feedback aptico
- 21. WP7 Controllo WebBrowser zoom
- 22. Acquisto in-app WP7
- 23. Deserializzazione JSON in WP7
- 24. WP7/8 cambiando InputScope dinamicamente dopo un evento utilizzando C#
- 25. Operazione non supportata nella raccolta di sola lettura C# wp7
- 26. Librerie di elaborazione immagini cross-platform C/C++ rapide
- 27. Elaborazione immagini OpenCV - C++ vs C vs Python
- 28. wp7 pivotcontrol set header null
- 29. WP7 SDK su Windows 8
- 30. Stile della tastiera wp7 (Mango)
http : //msdn.microsoft.com/en-us/library/dd231917.aspx http://www.un4seen.com/ – vulkanino
oh. Streaming Audio, questo è ciò che viene chiamato. – nicks
inoltre, mi piacerebbe sapere, se c'è un modo per LAVORARE effettivamente con l'audio, avere accesso ai singoli campioni. c'è una API per questo? – nicks