Files
voice_test/asr.go
T

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()
}