31 lines
732 B
Go
31 lines
732 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
// ASR provider 接口 + 工厂:把浏览器麦克风 PCM 转成实时文本流。
|
|
// 事件语义(与前端约定):
|
|
//
|
|
// type=partial text=中间结果
|
|
// type=final text=最终句
|
|
type asrEvent struct {
|
|
Typ string // partial | final | error
|
|
Text string
|
|
Code string
|
|
Error string
|
|
}
|
|
|
|
type asrProvider interface {
|
|
// start 建连并启动任务,返回后即可 sendAudio。
|
|
start(ctx context.Context) error
|
|
// sendAudio 发送一块 PCM16/16k/mono 音频。
|
|
sendAudio(b []byte) error
|
|
// finish 发送结束指令,upstream 关闭时 events 关闭。
|
|
finish() error
|
|
// events 返回识别结果通道。
|
|
events() <-chan asrEvent
|
|
// close 释放资源。
|
|
close()
|
|
}
|