0
我想知道在XNA Framework或其他任何方式中是否可以切斷聲音的開頭。我記錄聲音通過麥克風和我處理聲音的實例是這樣的:剪切音效開始/沉默
流是這樣定義的:
private MemoryStream stream = new MemoryStream();
是否有可能以某種方式修改流和削減聲音的開始?
SoundEffect sound = new SoundEffect(stream.ToArray(), microphone.SampleRate, AudioChannels.Mono);
var soundInstance = sound.CreateInstance();
我將如何確定刪除哪些字節?還是在某種程度上可以檢測到「沉默」/「背景」,並在聽到真人的聲音之前自動將其切斷?
謝謝
嘿,我知道採樣率是16000hz,它是單聲道的。我不確定這些位,但如果知道位的大小,如何遍歷樣本。我是否必須將它投射到其他物體以便於操作?或者我會只使用流? –
基本上你必須先知道確切的格式。如果您知道這一點,您可以將流中的字節轉換爲樣本。例如:如果它是16位pcm,則必須將2個字節對始終轉換爲16位整數。如果ieeefloat爲32位,則必須將4個字節的對轉換爲範圍從-1到1的浮點數。總而言之,當您獲取樣本時,可以查看它們的值。正如我之前所說。它們不會爲零,但可以使用任何值,例如10%。如果它大於10%,則不存在「沉默」。 –