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

如何在.NET Framework4.7.2的C#中切换Speech Recognition Engine麦克风?

切换Speech Recognition Engine的音频输入设备

在.NET Framework 4.7.2中,你可以通过以下步骤指定非默认麦克风设备:

1. 枚举可用的音频输入设备

首先用SpeechRecognitionEngine.GetAudioInputs()静态方法获取所有可用的语音输入设备,每个设备对应AudioDeviceInfo对象,包含唯一的Id和友好Name:

using System.Speech.Recognition;

// 获取所有可用音频输入设备
var audioDevices = SpeechRecognitionEngine.GetAudioInputs();

// 遍历输出设备信息,方便选择目标设备
foreach (var device in audioDevices)
{
    Console.WriteLine($"设备名称: {device.Name}, 设备ID: {device.Id}");
}

2. 指定目标设备作为输入

通过SetInputToAudioDevice()方法,传入目标设备的Id或Name即可切换输入源(推荐用Id,避免名称重复导致的识别错误):

// 初始化识别引擎
SpeechRecognitionEngine engine = new SpeechRecognitionEngine();

// 示例1:通过设备ID指定
var targetDevice = audioDevices.FirstOrDefault(d => d.Id == "目标设备ID");
if (targetDevice != null)
{
    engine.SetInputToAudioDevice(targetDevice.Id);
}

// 示例2:通过设备名称指定(如果名称唯一)
// engine.SetInputToAudioDevice("你的麦克风设备名称");

注意事项

  • 确保目标设备是有效的音频输入设备,否则调用SetInputToAudioDevice会抛出异常
  • 设备Id是系统分配的唯一标识,比名称更可靠,适合程序中固定指定设备
  • 如果需要动态选择设备,可以结合UI让用户从枚举的设备列表中挑选

内容的提问来源于stack exchange,提问作者sakai ntech

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:03:24