语音能力

ASR 语音识别

13+ 语音识别引擎,回调驱动的流式转写。

MCP API

所有 ASR 引擎实现 recognizer.SpeechRecognitionEngine 接口,通过工厂按供应商标识创建。

接口

type SpeechRecognitionEngine interface {
    Init(resultCb SpeechRecognitionResult, errorCb RecognitionError)
    Vendor() string
    ConnAndReceive(dialogId string) error
    SendAudioBytes(data []byte) error
    SendEnd() error
    StopConn() error
}

识别采用回调驱动:持续送入 PCM 音频帧,通过回调接收实时转写结果。

基本用法

import "github.com/LingByte/lingllm/recognizer"

factory := recognizer.NewTranscriberFactory()

cfg, _ := recognizer.NewTranscriberConfigFromMap("qcloud", map[string]interface{}{
    "appId":     "your-app-id",
    "secretId":  "your-secret-id",
    "secretKey": "your-secret-key",
})

engine, err := factory.CreateTranscriber(cfg)
if err != nil {
    panic(err)
}

engine.Init(
    func(text string, isLast bool, duration time.Duration, uuid string) {
        fmt.Printf("[%v] %s (final=%t)\n", duration, text, isLast)
    },
    func(err error, isFatal bool) {
        fmt.Printf("ASR 错误 (fatal=%t): %v\n", isFatal, err)
    },
)

engine.ConnAndReceive("dialog-1")
engine.SendAudioBytes(pcmFrame) // 16kHz PCM
engine.SendEnd()
engine.StopConn()

支持的引擎

标识引擎说明
qcloud腾讯云中文优化
deepgramDeepgram英文为主
googleGoogle多语言
awsAWS多语言
baidu百度中文优化
volcengine火山引擎中文优化
volcengine_llm火山大模型 ASR大模型增强
funasrFunASR开源,可本地部署
funasr_realtimeFunASR 实时流式本地识别
whisperWhisper开源,可本地部署
gladiaGladia多语言

运行时获取完整列表:factory.GetSupportedVendors()

音频格式

  • 推荐输入:16kHz、16-bit、单声道 PCM
  • 其他格式需先通过 media 包重采样

示例

参考 examples/voice-demo

相关地址

此页面对您有帮助吗?

本页内容