Wave 音频录制器组件 — sgcAI | eSeGeCe

Audio Recorder (Wave)

TsgcAudioRecorderWave 通过 Windows Wave API 采集麦克风,并以实时流而非文件的形式提供音频。采样率、声道数和位深度都由您控制,这正是流式和实时场景所需要的。

TsgcAudioRecorderWave

流式麦克风采集。一个工作线程持续准备并排队缓冲区、测量每个数据块的电平,并在可配置的静音时长之后结束当前片段。

组件类

TsgcAudioRecorderWave

用途

流式麦克风采集

平台

Win32 和 Win64

sgcAI 是自包含的。该组件随 sgcAI 一同交付,并附带它所基于的 sgcWebSockets Core 运行时,因此无需购买基础授权。

以流的形式采集音频

选择采样格式,设置静音阈值,然后开始。音频以流的形式到达,而不是磁盘上的文件。

uses
  sgcAI, sgcAI_AudioRecorder_Wave;

var
  oRecorder: TsgcAudioRecorderWave;
begin
  oRecorder := TsgcAudioRecorderWave.Create(nil);
  oRecorder.WaveOptions.SampleRate    := 16000;
  oRecorder.WaveOptions.Channels      := 1;
  oRecorder.WaveOptions.BitsPerSample := 16;

  // Silence detection on the measured block level.
  oRecorder.WaveOptions.LevelMin     := 300;
  oRecorder.WaveOptions.StopAfter    := 1200;
  oRecorder.WaveOptions.WaitForAudio := 100;

  oRecorder.Start;   // Stop ends capture
end;
// includes: sgcAI.hpp, sgcAI_AudioRecorder_Wave.hpp

TsgcAudioRecorderWave *oRecorder = new TsgcAudioRecorderWave(NULL);
oRecorder->WaveOptions->SampleRate    = 16000;
oRecorder->WaveOptions->Channels      = 1;
oRecorder->WaveOptions->BitsPerSample = 16;

oRecorder->WaveOptions->LevelMin  = 300;
oRecorder->WaveOptions->StopAfter = 1200;

oRecorder->Start();

关键属性与方法

您最常使用的成员。

WaveOptions 格式

SampleRateChannelsBitsPerSample 精确设定采集格式,因此您可以匹配下游模型或编解码器所要求的任何格式。

WaveOptions 门限

LevelMin 是低于该值即把数据块视为静音的 RMS 电平,StopAfter 是该静音持续多久后结束片段,WaitForAudio 则是留给每个缓冲区填充的时长。

流式输出

采集过程中音频即以流的形式提供,因此可以转发到实时端点或即时编码,而不必等待文件关闭。

会话

Start 开始采集,Stop 结束采集。采集循环运行在自己的工作线程上,因此 UI 线程永远不会被阻塞。

与 MCI 录制器的对比

当您需要特定的采样格式或实时流时,请使用这一个。当您只需要每句话生成一个 WAV 文件时,请使用 TsgcAudioRecorderMCI

电平计量

RMS 电平是按数据块从 16 位采样计算得出的,这也正是您在 UI 中驱动电平表所用的数据。

继续探索

在线帮助sgcAI 组件的完整 API 参考和使用指南。
所有 sgcAI 组件浏览全部 15 个组件的完整功能矩阵。
下载免费试用版按您流水线所需的确切格式采集音频。
价格Single、Team 和 Site 授权,均含完整源代码,无需基础产品。
超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

准备好开始了吗?

下载免费试用版,从您的应用程序流式传输麦克风音频。