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%,则不存在“沉默”。 –