Audio Recorder (MCI)
TsgcAudioRecorderMCI 通过 Windows MCI API 把麦克风音频录制为 WAV 文件。它会监视输入电平,并在一段静音之后自动结束该片段,免提语音交互正是由此成为可能。
TsgcAudioRecorderMCI 通过 Windows MCI API 把麦克风音频录制为 WAV 文件。它会监视输入电平,并在一段静音之后自动结束该片段,免提语音交互正是由此成为可能。
基于文件的麦克风采集,带静音检测。它是聊天机器人、翻译器和助手组件默认使用的录制器。
sgcAI 是自包含的。该组件随 sgcAI 一同交付,并附带它所基于的 sgcWebSockets Core 运行时,因此无需购买基础授权。
设置一个电平阈值和一个静音时长窗口,然后开始。何时算一句话结束由组件判断。
uses
sgcAI, sgcAI_AudioRecorder_MCI;
var
oRecorder: TsgcAudioRecorderMCI;
begin
oRecorder := TsgcAudioRecorderMCI.Create(nil);
oRecorder.RecorderOptions.Filename := 'question.wav';
oRecorder.RecorderOptions.Mode := camoAuto;
// Stop after 1500 ms below the level threshold.
oRecorder.MCIOptions.LevelMin := 100;
oRecorder.MCIOptions.StopAfter := 1500;
oRecorder.Start; // Stop ends capture immediately
// Usually you just hand it to a voice component:
sgcAIOpenAIChatBot1.AudioRecorder := oRecorder;
end;
// includes: sgcAI.hpp, sgcAI_AudioRecorder_MCI.hpp
TsgcAudioRecorderMCI *oRecorder = new TsgcAudioRecorderMCI(NULL);
oRecorder->RecorderOptions->Filename = "question.wav";
oRecorder->RecorderOptions->Mode = camoAuto;
oRecorder->MCIOptions->LevelMin = 100;
oRecorder->MCIOptions->StopAfter = 1500;
oRecorder->Start();
sgcAIOpenAIChatBot1->AudioRecorder = oRecorder;
您最常使用的成员。
Filename 指定 WAV 的写入位置。Mode 可选 camoManual(由您自己调用 Start 和 Stop)或 camoAuto(每次答案朗读完毕后自动重新开始采集)。
LevelMin 是低于该值即视为静音的输入电平,StopAfter 是该静音需要持续多久才会结束当前片段。
Start 开始采集,Stop 立即结束采集。在自动模式下,静音检测器会替您调用 Stop。
音频按 16 位单声道 22050 Hz 采集,这既是语音转文本端点所期望的格式,也能让上传的文件保持较小。
每个录制器都会分配一个唯一的 MCI 别名,因此两个录制器可以在同一进程中运行而互不干扰。
把它赋给聊天机器人、翻译器或助手组件上的 AudioRecorder,采集、转写和作答的整条回路就会自动为您处理好。