1. 简介

讯飞开放平台提供开发者实时语音转写websocket接口,基于该接口,开发者可实现将连续的音频流内容,实时识别返回对应的文字流内容。

音频格式:采样率为16K,采样深度为16bits的pcm_s16le音频

2. 接口说明

接口调用包括两个阶段:握手阶段和实时通信阶段。

接口地址

参数格式

参数说明

1.获取baseString,baseString由appid和当前时间戳ts拼接而成,假如appid为595f23df,ts为1512041814,则baseString为

2.对baseString进行MD5,假如baseString为上一步生成的595f23df1512041814,MD5之后则为

3.以apiKey为key对MD5之后的baseString进行HmacSHA1加密,假如apiKey为d9f4aa7ea6d94faca62cd88a28fd5234,MD5之后的baseString为上一步生成的0829d4012497c14a30e7e72aeebe565e,则加密之后signa为

备注:

  • apiKey:接口密钥,在应用中添加实时语音转写服务时自动生成,调用方注意保管;
  • signa的生成公式:HmacSHA1(MD5(appid + ts),api_key),具体的生成方法详见【调用示例】;

2.1.2. 请求示例

结果格式为json,字段说明如下:

其中sid字段主要用于DEBUG追查问题,如果出现问题,可以提供sid帮助确认问题。

  1. {
  2. "action":"started",
  3. "code":"0",
  4. "data":"",
  5. "desc":"success",
  6. "sid":"rta0000000a@ch312c0e3f63609f0900"
  7. }

握手成功后,进入实时通信阶段,此时客户端的主动操作有两种:上传数据和上传结束标识,被动操作有两种:接收转写结果和错误

2.2.1. 上传数据

在实时转写过程中,客户端不断构造binary message发送到服务端,内容是音频的二进制数据。此操作的频率影响到文字结果展现的实时性。

1.建议音频流每40ms发送1280字节,发送过快可能导致引擎出错;2.音频发送间隔超时时间为15秒,超时服务端报错并主动断开连接。

音频数据上传完成后,客户端需发送一个特殊的binary message到服务端作为结束标识,内容是:

  1. {"end": true}

2.2.3. 接收转写结果

交互过程中,服务端不断返回 text message (转写结果) 到客户端。当所有结果发送完毕后,服务端断开连接,交互结束。

结果示例:

其中data为转写结果的json字符串

  1. data
  2. {
  3. "cn":{
  4. "st":{
  5. "bg":"820",
  6. "ed":"0",
  7. "ws":[{
  8. "cw":[{
  9. "w":"啊",
  10. "wp":"n"
  11. }],
  12. "wb":0,
  13. "we":0
  14. },{
  15. "cw":[{
  16. "wp":"n"
  17. }],
  18. "wb":0,
  19. "we":0
  20. },{
  21. "cw":[{
  22. "w":"!",
  23. "wp":"p"
  24. }],
  25. "wb":0,
  26. "we":0
  27. },{
  28. "cw":[{
  29. "w":"你好",
  30. "wp":"n"
  31. }],
  32. "wb":0,
  33. "we":0
  34. },{
  35. "cw":[{
  36. "w":"!",
  37. }],
  38. "wb":0,
  39. "we":0
  40. "cw":[{
  41. "w":"我",
  42. "wp":"n"
  43. }],
  44. "wb":0,
  45. "we":0
  46. },{
  47. "cw":[{
  48. "w":"是",
  49. "wp":"n"
  50. }],
  51. "wb":0,
  52. "we":0
  53. },{
  54. "cw":[{
  55. "w":"上",
  56. "wp":"n"
  57. }],
  58. "wb":0,
  59. "we":0
  60. }]
  61. }],
  62. "type":"1"
  63. }
  64. },
  65. }

转写结果data字段说明如下:

交互过程中,在服务端出现异常而中断服务时(如会话超时),会将异常信息以 text message 形式返回给客户端并关闭连接。

3. 附录

实时语音转写demo python语言

Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间:2019-05-07 07:12:51