You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity中录制单声道音频剪辑或转换为单声道?

Unity麦克风单声道录制实现方案

你可以通过两种方式实现单声道音频录制:直接录制单声道,或者将录制后的立体声转换为单声道,以下是具体实现:

方案一:直接录制单声道

Unity的Microphone.Start返回的音频通道数由麦克风硬件决定。如果你的麦克风支持单声道输入,可先在系统音频设置中将麦克风设置为单声道模式,这样Unity录制出的音频直接就是单声道。

你也可以提前检查麦克风设备的参数,确认是否支持单声道:

public void StartRecord()
{
    int minFreq, maxFreq;
    // 获取选中麦克风的参数范围
    Microphone.GetDeviceCaps(selectedDevice, out minFreq, out maxFreq);
    // 启动录制
    AudioSource audioSource = GetComponent<AudioSource>();
    audioSource.clip = Microphone.Start(selectedDevice, false, 300, 44100);
    // 强制AudioSource以单声道播放(即使录制的是立体声,播放时转为单声道)
    audioSource.spatialBlend = 1f;
    Debug.Log("选中的设备是" + selectedDevice);
    recordedAudioClip = audioSource.clip;
    startRecordingTime = Time.time;
}

方案二:录制后将立体声转为单声道

如果麦克风只能输出立体声,可在录制完成后将音频转换为单声道。核心逻辑是将多声道的采样数据取平均值,合并为单声道数据:

修改你的StopRecord方法如下:

public AudioClip StopRecord()
{
    float recordDuration = Time.time - startRecordingTime;
    int sampleCount = (int)(recordDuration * recordedAudioClip.frequency);
    int originalChannelCount = recordedAudioClip.channels;

    // 创建单声道的新音频剪辑
    AudioClip monoAudioClip = AudioClip.Create(
        recordedAudioClip.name,
        sampleCount,
        1,
        recordedAudioClip.frequency,
        false
    );

    float[] originalAudioData = new float[sampleCount * originalChannelCount];
    recordedAudioClip.GetData(originalAudioData, 0);

    float[] monoAudioData = new float[sampleCount];

    // 合并多声道数据为单声道(取各声道采样值的平均值)
    for (int i = 0; i < sampleCount; i++)
    {
        float channelSum = 0f;
        for (int channel = 0; channel < originalChannelCount; channel++)
        {
            channelSum += originalAudioData[i * originalChannelCount + channel];
        }
        monoAudioData[i] = channelSum / originalChannelCount;
    }

    monoAudioClip.SetData(monoAudioData, 0);
    this.recordedAudioClip = monoAudioClip;

    return recordedAudioClip;
}

这段代码会自动处理原音频的声道数,不管是单声道还是立体声,最终都会输出单声道音频。

内容的提问来源于stack exchange,提问作者Peter Bonnebaigt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:47:50