机器人语音交互api

机器人语音交互api

pclin

接口概览

提供高效的语音交互服务,将用户输入的语音予以分析并实时以语音方式解答用户问题。

请求方式

ws

示例

1
ws://127.0.0.1:9001

接口详情

语音识别

功能描述

支持语音输入,返回语音文件块的文本转换结果。

请求参数

参数名 类型 必选 描述
combinedData 音频流二进制数据 获取麦克风中获取的用户音频数据

其中combinedData的组成可参照下方js代码

inputData:从麦克风监听事件(e.inputBuffer.getChannelData(0))中获取
sampleRate:音频采样率

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
processor.onaudioprocess = function(e) {
if (!mic_active) return; // 如果麦克风未激活,则直接返回

let inputData = e.inputBuffer.getChannelData(0);
let outputData = new Int16Array(inputData.length);

// 转换为 16 位 PCM
for (let i = 0; i < inputData.length; i++) {
outputData[i] = Math.max(-32768, Math.min(32767, inputData[i] * 32768));
}

// 如果麦克风激活且 WebSocket 连接打开,发送 16 位 PCM 数据到服务器
if (textSocket && textSocket.readyState === WebSocket.OPEN) {
let metadata = JSON.stringify({ sampleRate: audioContext.sampleRate });
let metadataBytes = new TextEncoder().encode(metadata);
let metadataLength = new ArrayBuffer(4);
let metadataLengthView = new DataView(metadataLength);
metadataLengthView.setInt32(0, metadataBytes.byteLength, true); // true 表示小端字节序
let combinedData = new Blob([metadataLength, metadataBytes, outputData.buffer]);
textSocket.send(combinedData);
}
};

返回示例

  • 200 Response

    • JSON

      1
      2
      3
      4
      5
      6
      7
      8
      {
      "code": "200",
      "success": true,
      "data": {
      "type": "realtime",
      "text": "这是一条流式返回结果"
      }
      }

返回结果

状态码 状态码含义 说明
200 OK 成功

返回数据结构

状态码 200

字段名 类型 必选 中文名 描述
type string 返回值类型 realtime(实时), fullSentence(完整的句子)
text string 文本数据 返回的文本数据
  • 标题: 机器人语音交互api
  • 作者: pclin
  • 创建于 : 2025-06-05 11:33:11
  • 更新于 : 2025-09-22 14:27:28
  • 链接: https://anime-blog.52lin.site//archives/1749094391952
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
机器人语音交互api