Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 切断音效/静音的开头_C#_Audio_Windows Phone 8_Xna_Xna 4.0 - Fatal编程技术网

C# 切断音效/静音的开头

C# 切断音效/静音的开头,c#,audio,windows-phone-8,xna,xna-4.0,C#,Audio,Windows Phone 8,Xna,Xna 4.0,我想知道是否可以在XNA框架或任何其他方式中剪切声音的开头。我通过麦克风录制声音,我处理的声音实例如下: private MemoryStream stream = new MemoryStream(); 流的定义如下: private MemoryStream stream = new MemoryStream(); 是否有可能以某种方式修改流并切断声音的开头 SoundEffect sound = new SoundEffect(stream.ToArray(), microphone.

我想知道是否可以在XNA框架或任何其他方式中剪切声音的开头。我通过麦克风录制声音,我处理的声音实例如下:

private MemoryStream stream = new MemoryStream();
流的定义如下:

private MemoryStream stream = new MemoryStream();
是否有可能以某种方式修改流并切断声音的开头

SoundEffect sound = new SoundEffect(stream.ToArray(), microphone.SampleRate, AudioChannels.Mono);
var soundInstance = sound.CreateInstance();
如何确定要删除哪些字节?还是有可能检测到“沉默”/“背景”,并在听到真人的声音之前自动切断


谢谢

您必须知道录制声音的确切波形。如果您获得了准确的波形(例如16位pcm mono),您可以迭代所有样本,检查其是否在特定范围内。例如,如果所有样本都小于0.1,则为静默。如果不是。。。播放数据。

嘿,我知道采样率是16000hz,是单声道的。我不确定位的大小,但是如果知道位的大小,您将如何迭代样本。我是否需要将其投射到其他对象以便于操作?或者我只是处理流?基本上你必须先知道确切的格式。如果您知道这一点,您可以将流中的字节转换为示例。例如:如果是16位pcm,则必须始终将2字节对转换为16位整数。如果它是32位浮点,则必须将4字节对转换为-1到1范围内的浮点。总之,当你拿到样品后,你可以看看它们的价值。正如我之前所说。它们不会为零,但可以使用任何值,如10%。如果声音大于10%,则不存在“沉默”。