开发者社区> 问答> 正文

阿里语音AI前端直接通过ws协议去做实时识别功能,有示例代码吗?完整的那种

阿里语音AI前端直接通过ws协议去做实时识别功能,有示例代码吗?完整的那种

展开
收起
三分钟热度的鱼 2023-05-29 14:14:56 157 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    是的,阿里语音AI前端可以通过WebSocket(ws)协议实现实时识别功能。以下是一个简单的示例代码:

    const WebSocket = require('ws'); const fs = require('fs');

    // 请替换成自己的AccessKey信息 const accessKeyId = 'your_access_key_id'; const accessKeySecret = 'your_access_key_secret';

    // 阿里语音识别服务地址 const url = wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1;

    // 阿里语音识别服务参数 const appkey = 'nls-service'; // 服务名 const format = 'pcm'; // 语音格式 const sampleRate = 16000; // 采样率 const enablePunctuationPrediction = true; // 是否开启标点预测

    // 生成签名信息 const time = Date.now(); const signatureNonce = Math.random() .toString(36) .substr(2); const signature = Buffer.from( appId=${appkey}&nonce=${signatureNonce}&timestamp=${time} ); const sha1 = require('crypto').createHmac('sha1', accessKeySecret); sha1.update(signature); const signatureResult = sha1.digest('base64');

    // 阿里语音识别服务请求参数 const params = { appkey, format, sampleRate, enablePunctuationPrediction, signatureNonce, timestamp: time, signature: signatureResult, };

    // 将语音文件转为PCM格式 const filePath = 'test.wav'; const pcmFile = 'test.pcm'; const command = ffmpeg -i ${filePath} -f s16le -acodec pcm_s16le -ar ${sampleRate} -ac 1 ${pcmFile}; require('child_process').execSync(command);

    // 读取PCM数据并发送到阿里语音识别服务 const ws = new WebSocket(url); ws.on('open', function open() { console.log('WebSocket opened.'); // 发送音频文件头部信息 ws.send(JSON.stringify(params)); // 发送PCM数据 const stream = fs.createReadStream(pcmFile); stream.on('data', (chunk) => { ws.send(chunk); }); stream.on('end', () => { ws.send(JSON.stringify({ action: 'stopRecognize' })); }); }); ws.on('message', function incoming(data) { console.log(data); }); ws.on('close', function close() { console.log('WebSocket closed.'); }); 以上代码需要安装ws和crypto两个模块,可通过以下命令安装:

    npm install ws crypto 代码中的accessKeyId和accessKeySecret需要替换成自己的AccessKey信息。filePath为要识别的音频文件路径,pcmFile为将要生成的PCM格式文件路径,需要安装ffmpeg软件并将其加入系统环境变量中才能正常运行。

    该代码会将音频文件转为PCM格式并通过WebSocket协议发送到阿里语音识别服务,当服务返回识别结果时会输出到控制台上。注意,该示例代码只能识别单个音频文件,如果要实现多个音频文件的识别,需要在每个音频文件的识别结束后关闭WebSocket连接,然后再重新创建WebSocket连接识别下一个音频文件。

    2023-05-29 14:28:08
    赞同 展开评论 打赏
  • 这个确实是没有的。此回答整理自钉群“阿里语音AI【6群】”

    2023-05-29 14:22:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
释放算力潜能,加速 AI 应用构建 立即下载
网易游戏机器学习云平台助力AI应用落地实践 立即下载
智算时代,基于 ACK 落地云原生AI 立即下载