Tag: audio

无需播放即可捕获音频

我正在尝试使用麦克风并处理捕获的音频。 我设法做到了这一切,但我遇到了问题……我拍摄的音频会自动播放给用户,我不希望这样。 audioSrc.clip = Microphone.Start(null, true, 1000, 44100); while (!(Microphone.GetPosition(null) > 0)) { } audioSrc.Play(); 我试图禁用音频监听器并降低音频源的音量,但这不起作用。 任何人都知道如何在不回放的情况下捕获音频? 编辑1: void Start() { GameObject a = new GameObject(“AudioSource”); audioSrc = a.AddComponent(); Instantiate(a); string deviceName = Microphone.devices[0]; audioSrc.clip = Microphone.Start(deviceName, true, 1000, 44100); audioSrc.volume = 0; while (!(Microphone.GetPosition(null) > 0)) { } audioSrc.Play(); } void Update() { audioSrc.GetSpectrumData(spectrum, […]

MP3字节数组 – 转换为WAV并导航到时间索引?

我有一个包含MP3流的字节数组。 如果我希望能够转换为WAV,那么假设必须进一步解码此流是否正确? 在当前字节状态下,是否可以执行基本function,例如获取/设置位置(按时间)?

使用p / invoke和win-api监听音频线路输入(C#)

在过去的几天里,我试图用win-api(winmm.dll)编写一个小程序来监听音频线路输入。 我可以调用诸如waveInOpen之类的api函数,但我无法弄清楚如何使用这些函数来实现我的目标。 问题是 – 有人可以简单告诉我如何使用这些API(C#)从音频线获取数据。

获取带有NAudio的默认输出音频设备

我想使用NAudio获取默认输出音频设备(即我的扬声器),以获得此问题中的主音量。 我正在尝试使用MMDeviceEnumerator.GetDevice() ,但它所使用的id是一个字符串,而不是设备号。 这是我到目前为止编写的代码: var enumerator = new MMDeviceEnumerator(); for (int i = 0; i < WaveOut.DeviceCount; i++) { var cap = WaveOut.GetCapabilities(i); Console.WriteLine("{0}: {1}", i, cap.ProductName); var device = enumerator.GetDevice(???); } Console.WriteLine(); Console.ReadLine(); 我已经尝试将各种Guids从function以及字符串格式的设备ID传递给GetDevice()但它们都不起作用。 如何获取默认设备?

从多个WAV文件中删除标头,然后将剩余数据连接到一个RAW文件中

我有一个RAW音频文件,它由几个连接的,较小的WAV文件组成。 我可以在Sound Forge中以48,000,8位PCM,签名,单声道打开并播放此文件。 我想在C#中做的是用编程方式用相同或更小长度的新数据覆盖文件中的每个WAV,我认为我非常接近能够做到。 我可以在RAW文件上执行File.ReadAllBytes,循环遍历字节数组,并确定每个WAV的开始和结束位置。 然后我在我的电脑上选择新的WAV文件,删除标题,并将剩余的数据写入我的RAW文件。 如果新的WAV小于它的目的地,我用0填充差值。 然而,当我在上面提到的设置中打开Sound Forge中的新文件时,我的所有WAV看起来更像是固体块,而不是普通的“圣诞树”形状,它们都播放得很响亮而且扭曲。 在第一次遇到这个之后,我突然意识到我的所有新的源WAV都是41,000,16位PCM,有符号立体声格式。 我以这种格式打开了我新创建的RAW文件,它外观和播放都很好。 我想我必须将所有新的WAV转换为48,000,8位PCM,签名,单声道,然后运行应用程序将它们复制到RAW文件中。 我在使用NAudio编写了一些代码,在将数据复制到我的RAW文件之前对文件进行转换,但我仍然遇到了同样的问题。 我也尝试先在Sound Forge中手动转换每个新的WAV,但仍然遇到同样的问题。 我在这里想念的是什么? 谢谢。

尝试构建一个简单的c#app来控制我的音量混音器

我想做的就是构建一个简单的应用程序来控制我的音量混音器。 我更喜欢使用c#,但我得到的印象是它的语言水平太高,无法做到这样的事情。 我正在寻找关于如何开始这样做的简单教程,有人请指出我正确的方向。

使用渐变颜色绘制矩阵“Spectrogram”

在使用STFT(短时傅立叶变换)之后,输出是表示3d图的矩阵,好像(A[X, Y] = M) A是输出矩阵,X是时间,Y是频率,并且第三维M是像素颜色强度所示的幅度,如下图所示: 谱图2 如何使用C#中的图片中的渐变颜色绘制输出矩阵A? 是否有一个包含C#频谱图控件的库? 更新: 在对给定算法进行一些修改后我可以绘制光谱图,我没有改变调色板,除了第一种颜色变为黑色但我不知道为什么它会褪色! 这个代表一种声音 再见 再见光谱图 而这是一个pure sine wave所以它几乎都是相同的频率 纯正弦波频谱图 输出被接受它表示输入信号的频率如预期的那样,但我认为有一种方法可以使光谱图像示例中的那样进行说明,请您查看我的代码并建议修改? 这是事件处理程序: private void SpectrogramButton_Click(object sender, EventArgs e) { Complex[][] SpectrogramData = Fourier_Transform.STFT(/*signal:*/ samples, /*windowSize:*/ 512, /*hopSize:*/ 512); SpectrogramBox.Image = Spectrogram.DrawSpectrogram(SpectrogramData, /*Interpolation Factor:*/ 1000, /*Height:*/ 256); } 这是我修改后的绘图function: public static Bitmap DrawSpectrogram(Complex[][] Data, int InterpolationFactor, int Height) { […]

使用C#将多个音频样本混合到单个文件中

我正在寻找一个能够创建音频文件(mp3或wav)的库。 NAudio作为一个很好的候选人脱颖而出,但不确定它是否以及如何能够特别满足我的需求。 我想将多个音频样本混合到一个文件中,让它们同时播放,并在“渲染”音频文件时控制每个样本的开始和结束时间。 NAudio有可能吗? 如果是这样,怎么样? 你能指出一个好的教程吗? 此外,还有其他推荐的.net音频库吗? 谢谢!

如何创建虚拟音频设备

我正在开发一个C#项目,我需要创建几个虚拟音频设备。 后来我将自己做一些切换。 也许有人知道一个很好的库,可以让我自己做问题。 创建音频设备的实例。 (商业还可以,但免费.dll会更好) 另一种可选解决方案是找到一种能够根据我的需求创建虚拟音频设备的软件。

在WinCE中发出哔哔声,有可能吗?

是否有可能在WinCE中发出哔哔声? 我尝试,我得到一个错误