Skip to main content

扫描笔云端协议接口说明

更新记录#

版本更新说明责任人日期
1.0初版定义李逸卿2021.1.14
1.1新增文本翻译接口,用于收藏夹中的句子翻译李逸卿2021.1.19
1.2修改语音翻译和文本翻译协议,新增translation字段李逸卿2021.1.25
1.3新增图像帧数据协议说明梁展晖2021.2.02
1.4新增多行扫描请求方式李逸卿2021.3.2
1.5多行扫描请求更改为实时扫描参数,修改多行扫描交互方式梁展晖2021.3.7
1.6增加翻译语种字段:recognizer.visual_result增加data.from、data.to字段,recognizer.trans_result增加data.from、data.to字段梁展晖2021.3.9
1.7更新单词查询接口地址梁展晖2021.3.11
1.8增加jpeg格式协议说明。帧头数据格式FMT增加JPEG: 0x30,保留数据添加jpeg说明梁展晖2021.3.22
1.9visuale_in请求增加参数image_metadata.reverse,支持竖向拼接图片梁展晖2021.3.24
1.10visual_in请求添加debug, image_debug字段用于调试梁展晖2021.5.27
1.11增加请求上限限制:翻译上限:256字符,ocr上限:4090px李逸卿2021.6.3
1.121. visual_in增加tokenization字段,用于开启/关闭中文分词;2. visual_result增加segs字段,用于返回中文分词结果胡星晨2021.7.16
1.131. 更新词典接口,支持中文单字、单词、成语以及英文单词查询;2. 优化中文分词逻辑胡星晨2021.8.11
1.141. 请求协议visual_in新增词典开关dictionary教育内容开关resources ,返回结果profile新增DICTIONARY代表词典内容返回,RESOURCES代表教育内容返回。;2. 词典中文单字接口返回新增字典strokes.gif,供分辨率低屏幕展示笔画。刘钟蔚2021.9.17
1.151. 修正image_metadata.tokenization字段刘钟蔚2021.9.18
1.16词典查询的英文单词返回新增details_us_pronunce美式发音字段。刘钟蔚2021.9.28
1.17更新口语练习相关协议和接口说明张毅2021.10.22
1.18更新词典诗词返回相关协议和接口说明刘钟蔚2021.12.13
1.19增加语速设置接口说明刘钟蔚2021.12.15

已有能力#

在开始对接iFLYOS之前,请先查阅线上文档的已有能力,本文档主要描述新增能力。

在扫描笔的实现过程中,主要需要实现以下能力:

name说明实现要求
recognizer识别器,这是iFLYOS交互的基础必须实现
audio_player音频播放器,在扫描笔项目中播放的内容是TTS语音必须实现
system系统相关必须实现
speaker扬声器控制必须实现
screen屏幕控制可选实现
interceptor自定义拦截器,是iFLYOS 实现自定义语义理解的基础可选实现

扫描翻译#

业务流程图#

在流程图中可以看出:

  1. 设备端一次请求会收到至少4个iFLYOS的回复
  2. 设备端通过流的方式传输图片至iFLYOS云端
  3. 若开启中文分词,且原文包含中文时,iFLYOS将返回原文分词结果,否则返回原文原始文本

请求协议visual_in#

{  "iflyos_header": {...},  "iflyos_context": {...},  "iflyos_request": {    "header": {      "name": "recognizer.visual_in",      "request_id": "xxxxxxxx"    },    "payload": {      "profile": "OCR_TRANS_TTS",      "realtime": true,      "image_metadata":{        "reverse": true,        "tokenization":true,        "dictionary":true, // 0917新增: 词典开关        "resources":true, // 0917新增: 教育内容开关        "height": 128,        "image_data_debug": false,        "debug": false      }    }  }}
参数类型说明必填
iflyos_headerObject构建的通用 iflyos_header
iflyos_contextObject构建的通用 iflyos_context
profileString请求操作,具体取值见下表
realtimeBoolean实时识别,多行扫描时必须开启,会实时返回识别结果。实时识别也支持单行扫描,与原单行扫描协议一致。
image_metadataObject图像相关信息
image_metadata.heightInt图片高度,单位是px
image_metadata.reverseboolean竖向拼接图片,默认为false
image_metadata.tokenizationBoolean中文分词,设置为true且原文为中文,则返回中文分词结果。若未开启或原文为英文,则返回原文原始文本。
image_metadata.dictionaryBoolean词典开关,设置为true时调用词典接口
image_metadata.resourcesBoolean教育内容开关,设置为true时调用教育内容接口
image_metadata.image_debugboolean设置为true时,云端暂存设备上报的数据用于从调试接口获取图片等数据,仅供开发调试使用。此时请务必将原图使用jpeg算法压缩后传输。默认为false
image_metadata.debugboolean设置为true时,云端收集ocr相关信息用于算法调试,仅供开发调试使用,默认为false 。处于debug模式时扫描图片,云端不会返回识别结果,只会将采集后的图片保存,用于后续算法优化。

profile取值

profile 取值说明
OCR图像识别,返回识别结果
OCR_TTS图像识别,语音合成识别结果
OCR_TRANS图像识别,翻译识别结果
OCR_TRANS_TTS图像识别,翻译识别结果,合成原文和译文
TEXTBOOK教材指读,暂未开放
发送图像数据#

在发送image_in请求后,客户端流传图像二进制元数据。通过__END__标记数据发送完成。

注意:

  • 传输图片时,按列从上到下,从左到右传输。
  • 多行扫描时,开始扫描发一个visual_in请求,发送图片数据,换行时发送换行帧。当用户在超时时间(建议2s)内没有扫描新的数据,发送__END__标记结束识别。
图像帧数据协议说明#

1

多行扫描换行帧#

协议格式与图像帧数据协议一致,仅图像类型固定为0xFF,其他字段任意,无帧数据。

换行帧示例

2

帧头保留数据说明#
JPEG#

当图像格式为JPEG(0x30)时,保留数据为数据帧长度: uint16, 小端字节序

返回示例#

OCR结果/翻译结果#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "recognizer.visual_result"      },      "payload": {        "is_last": true,        "profile": "OCR",        "data": {          "code": 0,          "description": "success",          "sid": "xxxxxxx",          "content":"null",           segs:['欢迎','购买','聆','思','智能','扫描','笔',]          "from": null,          "to": null        }      }    }  ]}
参数类型说明必有
is_lastBool是否为最终结果,true表示当前文本为最终结果,false表示当前文本不是最终状态,只有在原文识别,实时扫描的情况下会出现取值为false
profileStringAI引擎名称,取值为OCRTRANSTEXTBOOK(暂未开放)
dataObject引擎处理结果
data.codeInt请求结果代码,0代表成功。错误码查询
data.descriptionString请求结果说明
data.sidString图像识别请求的唯一标识
data.contentString1. 若profile取值为OCRis_lastfalse 时,返回扫描识别的文本结果。;is_lasttrue 时,返回null;2. 若profile取值为TRANS,则这里返回的是翻译的结果。;3. 若设备处于debug模式,则这里固定返回”原图已采集完成“
Data.segsString1. 若设备开启分词,处于单行扫描模式,且原文包含中文;或处于多行扫描, 且 is_lasttrue 时,返回分词结果,词与词之间通过英文逗号隔开;2. 其余情况此处返回null
data.fromString1. 若profileTRANS时表示翻译原语种。取值:;cn(中文);en(英文);2. 若profile为其他时值为null
data.toString1. 若profileTRANS时表示翻译结果语种。取值:;cn(中文);en(英文);2. 若profile为其他时值为null
词典结果#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "recognizer.visual_result"      },      "payload": {        // 新增profile: "DICTIONARY"        "profile": "DICTIONARY",        // data中内容与词典接口返回结果相同        "data": {            "content":"愚公移山",            "type":"idiom",            "details":[            {            "pronunce":[                {                    "symbol":[                        "yú",                        "gōng",                        "yí",                        "shān"                    ],                    "url":"http://dict.cn/mp3.php?q=efVw7 "                }            ],            "definition":[                {                    "description":[                        "比喻坚持不懈地改造自然和坚定不移地进行斗争。"                    ]                }            ],            "origin":"《列子·汤问》记载:愚公家门前有两大座山挡着路,他决...",            "synonyms":[                "锲而不舍",                "持之以恒"            ],            "antonyms":[                "虎头蛇尾",                "有头无尾"            ],            "story":"传说古代有两座大山间住着一个90岁的愚公,他每次出门因大山阻隔,要绕很大的弯子......",            "poem":[                "太行、王屋二山,方七百里,高万仞,本在冀州之南,河阳之北。",                "北山愚公者,年且九十,面山而居...",                "河曲智叟笑而止之曰..."            ]        }    ]}
参数类型说明必有
profileStringDICTIONARY为词典返回内容
dataObjectdata中内容与词典接口返回结果相同,可参考本文档词典查询接口
教育内容结果#
{    "iflyos_meta": {                                            ……    },    "iflyos_responses": [        {            "header": {                "name": "recognizer.visual_result"            },            "payload": {                "is_last": true,                "profile": "RESOURCES",                "data": {                    "resources": [                        {                            "type": "poem",                            "title": "静夜思",                            "score": 10001.4380398989,                            "extra": {                                "review": [                                    [                                        {                                            "url": "https://cdn.iflyos.cn/public/ocr_resources/poem_review/7a53928fa4dd31e82c6ef826f341daec.mp3",                                            "title": "创作背景",                                            "content_url": "https://console.iflyos.cn/api/v1/ocr/resources/value?type=poem&id=10&key=review_0"                                        }                                    ],                                    [                                        {                                            "url": "https://cdn.iflyos.cn/public/ocr_resources/poem_review/1905aedab9bf2477edc068a355bba31a.mp3",                                            "title": "赏析",                                            "content_url": "https://console.iflyos.cn/api/v1/ocr/resources/value?type=poem&id=10&key=review_1"                                        }                                    ],                                    [                                        {                                            "url": "https://cdn.iflyos.cn/public/ocr_resources/poem_review/28267ab848bcf807b2ed53c3a8f8fc8a.mp3",                                            "title": "版本说明",                                            "content_url": "https://console.iflyos.cn/api/v1/ocr/resources/value?type=poem&id=10&key=review_2"                                        }                                    ],                                    [                                        {                                            "url": "https://cdn.iflyos.cn/public/ocr_resources/poem_review/1141938ba2c2b13f5505d7c424ebae5f.mp3",                                            "title": "评析",                                            "content_url": "https://console.iflyos.cn/api/v1/ocr/resources/value?type=poem&id=10&key=review_3"                                        }                                    ]                                ],                                "explain": [                                    [                                        {                                            "url": "https://cdn.iflyos.cn/public/ocr_resources/poem_explain/7f5d04d189dfb634e6a85bb9d9adf21e.mp3",                                            "title": "译文及注释",                                            "content_url": "https://console.iflyos.cn/api/v1/ocr/resources/value?type=poem&id=10&key=explain_0"                                        }                                    ]                                ],                                "author": "李白",                                "audio_url": "https://cdn.iflyos.cn/public/ocr_resources/poem_audio/1d8cf949089ce92c96a3e8e60c6cc19e.mp3"                            },                            "content": "床前明月光,疑是地上霜。举头望明月,低头思故乡。"                        },                        {                            "type": "poem",                            "title": "满庭芳·静夜思",                            "score": 10000.9036120772,                            "extra": {                                "review": [],                                "explain": [],                                "author": "辛弃疾",                                "audio_url": "https://cdn.iflyos.cn/public/ocr_resources/poem_audio/16537a893ccfbec9727293bb3cdd4962.mp3"                            },                            "content": "云母屏开,珍珠帘闭,防风吹散沉香。离情抑郁,金缕织硫黄。柏影桂枝交映,从容起,弄水银堂。连翘首,惊过半夏,凉透薄荷裳。一钩藤上月,寻常山夜,梦宿沙场。早已轻粉黛,独活空房。欲续断弦未得,乌头白,最苦参商。当归也!茱萸熟,地老菊花黄。"                        },                        {                            "type": "audio",                            "title": "静夜思",                            "score": 10001.4380398989,                            "extra": {                                "audio_url": "http://mp3play.61gequ.com/audio/33/1604-1532945740516.mp3"                            },                            "content": null                        }                    ]                }            }        }    ]}
参数类型说明必有
profileStringRESOURCES为教育内容库的内容返回
dataObject返回结果
resourcesObject资源结果
typeString单词、词语、四字成语、文言文、古诗词、歇后语
titleString内容标题
scorefloat内容匹配置信度
contentString详细内容
extraObject更多的内容,不同类型资源不同
extra.reviewObject故事、文言文复习相关内容
extra.review.titleString内容类型
extra.review.urlString复习音频链接
extra.review.content_urlString复习音频文本
extra.explainObject故事、文言文译文
extra.explain.titleString内容类型
extra.explain.urlString译文音频链接
extra.explain.content_urlString译文音频文本
TTS#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "audio_player.audio_out"      },      "payload": {        "type": "TTS",        "url": "http://tts.iflyos.cn/tts/sadf.mp3?token=xxxxxxxx",        "secure_url": "https://tts.iflyos.cn/tts/sadf.mp3?token=xxxxxxxx",        "behavior": "SERIAL",        "resource_id": "e52e7xxxxxxxxxxxe52e7"        "content_type": "original"      }    }  ]}
参数类型说明必有
typeString播放器类型,此处取值TTS
behaviorString资源播放方式。<br>当type取值为TTS时,behavior取值:<br>- SERIAL:串行TTS,执行时阻塞,播完TTS才可以执行下一个指令)<br>- PARALLEL:并行,执行不阻塞,开始播放TTS时可以同时执行后续指令。若该字段未出现,默认为SERIAL
urlString内容播放地址,可能放的是http的链接,设备解析速度会更快,但有可能会被劫持
secure_urlString内容播放的安全地址,放的是不会被劫持的https链接,但设备解析速度可能会相对慢一些
resource_idString内容ID
content_typeStringTTS类型,取值为 original代表原文,取值为translation代表译文。仅在图片/语音/文本翻译过程中会出现

上限说明#

  • OCR识别服务最长支持4090px长度的图片,若扫描内容超长,云端将会回复报错的TTS。
  • 翻译服务最多支持256字符的翻译长度,若翻译内容超长,云端会在译文文本和TTS处返回报错提示。

注意:

当设备端处于debug模式时,每次完成扫描,云端均会下发”原图已采集完成“的TTS音频,表示本次数据采集已完成。

语音翻译#

流程图

请求示例#

语音翻译请求

{  "iflyos_header": {...},  "iflyos_context": {...},  "iflyos_request": {    "header": {      "name": "recognizer.audio_in",      "request_id": "xxxxxxxx"    },    "payload": {      "enable_vad": false,      "profile": "CLOSE_TALK",      "format": "AUDIO_L16_RATE_16000_CHANNELS_1",      "translation": true    }  }}
参数类型说明必填
iflyos_headerObject构建的通用 iflyos_header
iflyos_contextObject构建的通用 iflyos_context
enable_vadBool是否使用云端VAD,此处需取值为false
profileString音频输入的处理引擎。近场取值CLOSE_TALK,远场取值FAR_FIELD
formatString音频编码类型,取值见下表
translationBool本次请求是否需要翻译。默认取值为FALSE,若取值为TRUE,将只翻译不请求NLU

返回示例#

语音识别结果#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "recognizer.intermediate_text"      },      "payload": {        "text": "明天的天气怎么样",        "is_last": false      }    }  ]}
语音翻译结果#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "recognizer.trans_result"      },      "payload": {        "code": 0,        "description": "success",        "sid": "xxxxxxx",        "data":{          "dst": "Hello World ",          "src": "你好世界",          "from": "cn",          "to": "en"        }      }    }  ]}
参数类型说明必有
codeInt请求结果代码,0代表成功。错误码查询
descriptionString请求结果说明
sidString图像识别请求的唯一标识
dataObject图像识别请求的结果
data.dstString译文文本
data.srcString原文文本
data.fromString翻译原语种。取值:;cn(中文);en(英文)
data.toString翻译结果语种。取值:;cn(中文);en(英文)
TTS#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "audio_player.audio_out"      },      "payload": {        "type": "TTS",        "url": "http://tts.iflyos.cn/tts/sadf.mp3?token=xxxxxxxx",        "secure_url": "https://tts.iflyos.cn/tts/sadf.mp3?token=xxxxxxxx",        "behavior": "SERIAL",        "resource_id": "e52e7xxxxxxxxxxxe52e7"        "content_type": "translation"      }    }  ]}
参数类型说明必有
typeString播放器类型,此处取值TTS
behaviorString资源播放方式。<br>当type取值为TTS时,behavior取值:<br>- SERIAL:串行TTS,执行时阻塞,播完TTS才可以执行下一个指令)<br>- PARALLEL:并行,执行不阻塞,开始播放TTS时可以同时执行后续指令。若该字段未出现,默认为SERIAL
urlString内容播放地址,可能放的是http的链接,设备解析速度会更快,但有可能会被劫持。
secure_urlString内容播放的安全地址,放的是不会被劫持的https链接,但设备解析速度可能会相对慢一些
resource_idString内容ID
content_typeStringTTS类型,取值为 original代表原文,取值为translation代表译文。仅在图片/语音/文本翻译过程中会出现

上限说明#

翻译服务最多支持256字符的翻译长度,若翻译内容超长,云端会在译文文本和TTS处返回报错提示。

文本翻译#

请求示例#

{  "iflyos_header": {...},  "iflyos_context": {...},  "iflyos_request": {    "header": {      "name": "recognizer.text_in",      "request_id": "xxxxxxxx"    },    "payload": {      "query": "请求的文本",      "with_tts": true,      "translation": true    }  }}
参数类型说明必填
iflyos_headerObject构建的通用 iflyos_header
iflyos_contextObject构建的通用 iflyos_context
queryString请求文本
with_ttsBool是否需要语音回复,如果你希望用户点击按钮的时候,不要出现提示音,那么可以设置为 false,默认为:true
translationBool本次请求是否需要翻译。默认取值为FALSE,若取值为TRUE,将只翻译不请求NLU

返回示例#

文本翻译结果#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "recognizer.trans_result"      },      "payload": {        "code": 0,        "description": "success",        "sid": "xxxxxxx",        "data":{          "dst": "Hello World ",          "src": "你好世界",          "from": "cn",          "to": "en"        }      }    }  ]}
参数类型说明必有
codeInt请求结果代码,0代表成功。错误码查询
descriptionString请求结果说明
sidString图像识别请求的唯一标识
dataObject图像识别请求的结果
data.dstString译文文本
data.srcString原文文本
data.fromString翻译原语种。取值:;cn(中文);en(英文)
data.toString翻译结果语种。取值:;cn(中文);en(英文)
TTS#
{  "iflyos_responses": [    ...,    {      "header": {        "name": "audio_player.audio_out"      },      "payload": {        "type": "TTS",        "url": "http://tts.iflyos.cn/tts/sadf.mp3?token=xxxxxxxx",        "secure_url": "https://tts.iflyos.cn/tts/sadf.mp3?token=xxxxxxxx",        "behavior": "SERIAL",        "resource_id": "e52e7xxxxxxxxxxxe52e7"        "content_type": "translation"      }    }  ]}
参数类型说明必有
typeString播放器类型,此处取值TTS
behaviorString资源播放方式。<br>当type取值为TTS时,behavior取值:<br>- SERIAL:串行TTS,执行时阻塞,播完TTS才可以执行下一个指令)<br>- PARALLEL:并行,执行不阻塞,开始播放TTS时可以同时执行后续指令。若该字段未出现,默认为SERIAL
urlString内容播放地址,可能放的是http的链接,设备解析速度会更快,但有可能会被劫持。
secure_urlString内容播放的安全地址,放的是不会被劫持的https链接,但设备解析速度可能会相对慢一些
resource_idString内容ID
content_typeStringTTS类型,取值为 original代表原文,取值为translation代表译文。仅在图片/语音/文本翻译过程中会出现

上限说明#

翻译服务最多支持256字符的翻译长度,若翻译内容超长,云端会在译文文本和TTS处返回报错提示。

词典查询接口#

单词查询#

你可以在设备上选择一个单词,查询单词释义。

接口地址#

GET https://api.iflyos.cn/external/ocr/dict

请求headers#

Authorization: Bearer {token}

{token}为设备端token

请求参数#

参数名类型说明
qstring指定翻译单词、单词

中文单字返回示例#

{    "content":"好",    "type":"characters",    "side":"女",    "structures":"左右",    "grade":"1",    "details":[        {            "pronunce":{                "symbol":"hǎo",                "url":"http://dict.cn/mp3.php?q=efVw7 "            },            "spelling":[                {                    "section":[                        1,                        2                    ],                    "url":"http://dict.cn/mp3.php?q=efVw7 "                }            ],            "synonyms":[                "美",                "佳"            ],            "antonyms":[                "糟",                "坏",                "差"            ],            "sample":[                "她画画很好",                "我们今天的生活很美好"            ],            "errorpronewords":[            ],            "definition":[                {                    "description":"身体强壮的,事事顺心的。",                    "sample":[                        "好身手",                        "您好",                        "安好",                        "好身体"                    ]                },                {                    "description":"方便,便利。",                    "sample":[                        "好用",                        "好办",                        "好使",                        "好弄",                        "拿走东西好让我进去。"                    ]                },                {                    "description":"和谐,友爱,平和。",                    "sample":[                        "交好",                        "友好",                        "相好",                        "和好",                        "好朋友"                    ]                }            ],            "related":{                    "idiom":[                        "不好意思",                        "好事多磨",                        "花好月圆"                    ],                    “prefix":[                        "好像",                        "好好",                        "好处",                        "好多",                        "好看",                        "好些"                    ],                    "suffix":[                        "不好",                        "只好",                        "良好"                    ]                }        },        {            "pronunce":{                "symbol":"hào",                "url":"http://dict.cn/mp3.php?q=efVw7 "            },            "spelling":[                {                    "section":[                        1,                        2                    ],                    "url":"http://dict.cn/mp3.php?q=efVw7 "                }            ],            "synonyms":[            ],            "antonyms":[            ],            "sentences":[            ],            "errorpronewords":[            ],            "definition":[                {                    "description":"喜欢,和“讨厌”相反。",                    "sample":[                        "爱好",                        "好奇",                        "好动",                        "好学",                        "好高骛远"                    ]                },                {                    "description":"不时,频频发生。",                    "sample":[                        "菠萝不快点吃掉就好烂。"                    ]                }            ],            "related":[                {                    "idiom":[                        "好吃懒做",                        "好大喜功",                        "好高骛远",                        "好为人师"                    ],                    "Prefix":[                        "好事",                        "好奇",                        "好奇心"                    ],                    "suffix":[                        "爱好",                        "嗜好",                        "洁身自好"                    ]                }            ]        }    ],    "strokes":{            "strokescount":"6",            "gif": "https://staging-api.iflyos.cn/external/ocr/stroke_gif/5LqU",            "strokesorder":[                "PD",                "P",                "H",                "HP",                "WG",                "H"            ],            "strokespath":[                "M 330 202 Q 361 175 399 134 Q 415 119 424 118 Q 433 118 439 128 Q 446 138 442 170 Q 435 206 361 247 L 319 270 Q 292 286 258 304 Q 237 314 240 335 Q 261 393 281 453 L 293 492 Q 317 568 337 644 Q 347 690 366 715 Q 379 737 373 750 Q 360 769 313 797 Q 294 810 276 801 Q 263 794 273 778 Q 303 733 247 486 L 236 442 Q 218 373 195 336 Q 185 314 206 296 Q 254 268 294 233 L 330 202 Z",                "M 294 233 Q 287 226 281 217 Q 250 180 196 143 Q 183 134 165 124 Q 149 114 133 104 Q 120 95 131 92 Q 212 86 327 199 Q 328 200 330 202 L 361 247 Q 406 322 421 385 Q 449 488 463 510 Q 473 526 458 537 Q 416 576 387 569 Q 374 565 378 550 Q 387 531 387 507 L 385 481 Q 384 469 382 455 Q 375 376 319 270 L 294 233 Z",                "M 387 507 Q 341 501 293 492 L 247 486 Q 183 479 115 468 Q 94 465 61 471 Q 48 471 45 462 Q 41 450 49 441 Q 68 422 96 400 Q 106 396 118 402 Q 190 436 236 442 L 281 453 Q 320 463 362 474 Q 372 478 385 481 C 414 489 417 511 387 507 Z",                "M 671 521 Q 788 635 822 648 Q 843 655 835 672 Q 831 688 760 725 Q 739 735 716 725 Q 661 703 575 676 Q 553 669 498 669 Q 473 669 482 648 Q 491 635 511 623 Q 544 605 578 627 Q 597 636 691 676 Q 706 682 719 673 Q 732 664 726 649 Q 693 595 655 531 C 640 505 649 500 671 521 Z",                "M 717 430 Q 702 497 671 521 L 655 531 Q 648 535 640 538 Q 618 547 608 540 Q 595 533 608 519 Q 645 491 653 444 Q 656 434 659 421 L 668 384 Q 701 204 658 103 Q 643 76 607 83 Q 576 89 548 94 Q 536 97 542 85 Q 546 78 564 65 Q 604 31 618 5 Q 628 -14 645 -11 Q 660 -10 687 17 Q 775 107 726 391 L 717 430 Z",                "M 726 391 Q 783 397 947 397 Q 966 398 971 406 Q 977 416 960 430 Q 909 467 848 454 Q 793 445 717 430 L 659 421 Q 562 409 452 393 Q 431 392 447 375 Q 460 362 478 357 Q 497 351 514 356 Q 586 375 668 384 L 726 391 Z"            ],            "storkes_medians":[                [                    [                        282,                        788                    ],                    [                        307,                        769                    ],                    [                        327,                        733                    ],                    [                        264,                        465                    ],                    [                        216,                        321                    ],                    [                        235,                        298                    ],                    [                        386,                        194                    ],                    [                        411,                        166                    ],                    [                        424,                        133                    ]                ],                [                    [                        390,                        556                    ],                    [                        417,                        530                    ],                    [                        424,                        516                    ],                    [                        422,                        504                    ],                    [                        387,                        361                    ],                    [                        338,                        255                    ],                    [                        304,                        207                    ],                    [                        260,                        165                    ],                    [                        206,                        127                    ],                    [                        137,                        97                    ]                ],                [                    [                        59,                        457                    ],                    [                        107,                        434                    ],                    [                        373,                        491                    ],                    [                        380,                        501                    ]                ],                [                    [                        493,                        656                    ],                    [                        517,                        646                    ],                    [                        550,                        644                    ],                    [                        680,                        692                    ],                    [                        706,                        699                    ],                    [                        743,                        696                    ],                    [                        771,                        669                    ],                    [                        765,                        657                    ],                    [                        677,                        546                    ],                    [                        674,                        535                    ],                    [                        663,                        536                    ]                ],                [                    [                        613,                        530                    ],                    [                        637,                        519                    ],                    [                        659,                        499                    ],                    [                        674,                        474                    ],                    [                        687,                        432                    ],                    [                        711,                        289                    ],                    [                        709,                        166                    ],                    [                        692,                        92                    ],                    [                        672,                        59                    ],                    [                        648,                        41                    ],                    [                        551,                        85                    ]                ],                [                    [                        449,                        384                    ],                    [                        504,                        377                    ],                    [                        860,                        427                    ],                    [                        906,                        426                    ],                    [                        960,                        412                    ]                ]        }    ]}
参数类型说明
contentString汉字内容
typeString汉字类型固定值为【characters】
sideString偏旁
structuresString结构
gradeString年级
detailsJSONArray汉字详细信息,若汉字有多个发音,且多个发音有不同含义,则此处details会有多个;
details_pronunceString汉字读音信息
details_pronunce_symbolString拼音
details_pronunce_urlString读音音频链接
details_spellingJSONArray汉字拼读信息
details_spelling_sectionJSONArray拼音分区,如[0,1]表示拼音的前两个字符
details_spelling_urlString分区后,各部分对应的发音url
details_synonymsString近义词
details_antonymsString反义词
details_sampleString例句
details_errorpronewordsString易错词
details_definitionJSONArray汉字解释
details_definition_descriptionString释义
details_definition_sampleJSONArray示例
details_relatedJSONArray相关词
details_related_idiomJSONArray相关成语
details_related_PrefixJSONArray相关词语(词首)
details_related_suffixJSONArray相关词语(词尾)
strokesJSONArray汉字笔画信息
strokes_gifString笔画gif图,供分辨率低屏幕展示(未上线)
strokes_strokescountString笔画数
strokes_strokesorderJSONArray笔画名称
strokes_strokespathJSONArray每一笔画svg路径
strokes_storkes_mediansJSONArray笔画坐标列表,用于展示每一笔画的动画,参见:https://www.skishore.me/makemeahanzi/

中文词语返回示例#

{    "content":"美丽",    "type":"word",    "details":[        {            "pronunce":[                {                    "symbol":[                        "měi",                        "lì"                    ],                    "url":"http://dict.cn/mp3.php?q=efVw7 "                }            ],            "definition":[                {                    "description":"喜欢,和“讨厌”相反。",                    "sample":[                        "漂亮的住宅"                    ]                }            ],            "synonyms":[                "秀丽",                "奇丽"            ],            "antonyms":[                "难看",                "丑陋"            ]        }    ]}
参数类型说明
contentString词语内容
typeString中文词语固定值为【word】
detailsJSONArray词语详情
details_pronunceJSONArray词语发音信息
details_pronunce_symbolString词语拼音
details_pronunce_urlString词语发音url
details_definitionJSONArray词语解释
details_definition_descriptionString词语释义
details_definition_sampleString词语例句
details_synonymsString近义词
details_antonymsString反义词

中文成语返回示例#

{    "content":"愚公移山",    "type":"idiom",    "details":[        {            "pronunce":[                {                    "symbol":[                        "yú",                        "gōng",                        "yí",                        "shān"                    ],                    "url":"http://dict.cn/mp3.php?q=efVw7 "                }            ],            "definition":[                {                    "description":[                        "比喻坚持不懈地改造自然和坚定不移地进行斗争。"                    ]                }            ],            "origin":"《列子·汤问》记载:愚公家门前有两大座山挡着路,他决...",            "synonyms":[                "锲而不舍",                "持之以恒"            ],            "antonyms":[                "虎头蛇尾",                "有头无尾"            ],            "story":"传说古代有两座大山间住着一个90岁的愚公,他每次出门因大山阻隔,要绕很大的弯子......",            "poem":[                "太行、王屋二山,方七百里,高万仞,本在冀州之南,河阳之北。",                "北山愚公者,年且九十,面山而居...",                "河曲智叟笑而止之曰..."            ]        }    ]}
参数类型说明
contentString成语内容
typeString成语固定值为【idiom】
detailsJSONArray成语详情
details_pronunceJSONArray成语发音信息
details_pronunce_symbolString成语拼音
details_pronunce_urlString成语发音url
details_definitionJSONArray成语解释
details_definition_descriptionString成语释义
details_originString成语来源
details_synonymsString近义词
details_antonymsString反义词
details_storyString成语故事
details_poemJSONArray成语相关诗歌

中文诗词返回示例#

{    "content": "静夜思",    "details": [        {            "poem": [                "床前明月光,疑是地上霜。",                "举头望明月,低头思故乡。"            ]        }    ],    "type": "poem"}

英文单词返回示例#

{    "content":"eat",    "type":"en_word",    "details":[        {            "pronunce":[                {                    "symbol":[                        "iːt"                    ],                    "url":"http://dict.cn/mp3.php?q=efVw7 "                }            ],            "us_pronounce": [                {                    "symbol": "iːt",                    "url": "https://api.iflyos.cn/external/ocr/audio/f02e00e49881ea3b912b99cf48498baa"                }            ],            "spelling":[                {                    "section":[                        1,                        2                    ],                    "url":"http://dict.cn/mp3.php?q=efVw7 "                }            ],            "definition":[                {                    "property":"v.",                    "description":[                        "吃;食",                        "用餐"                    ],                    "tag":"动作动词"                }            ],            "derivation":[                {                    "word":"eater",                    "property":"n.",                    "description":"食者"                },                {                    "word":"eatable",                    "property":"adj.",                    "description":"可吃的"                }            ],            "tenses":{                "presentParticiple":"eating",                "past":"ate",                "pastParticiple":"eaten",                "thirdPersonSingular":"eats"            },            "expressions":[                {                    "expression":"eat well",                    "description":[                        "健康首选;吃得营养;吃的好;胃口好"                    ]                },                {                    "expression":"eat well",                    "description":[                        "健康首选;吃得营养;吃的好;胃口好"                    ]                }            ],            "related":[                {                    "word":"drove",                    "description":"驾驶、人群"                },                {                    "word":"eater",                    "description":"食者"                }            ],            "picture":"http://oimagec5.ydstatic.com/image?id=8035347685817079127&amp;product=kid-dict "        }    ]}
参数类型说明
contentString单词文本内容
typeString英文单词类型固定为【en_word】
detailsJSONArray英文单词详情
details_pronunceJSONArray发音信息
details_pronunce_symbolJSONArray音标
details_pronunce_urlString单词发音url
details_us_pronunceJSONArray美式发音信息
details_us_pronunce_symbolJSONArray美式音标
details_us_pronunce_urlString单词美式发音url
details_spellingJSONArray拼读信息
details_spelling_sectionString音标分区,如[0,1]表示音标的前两个字符
details_spelling_urlString分区后,各部分对应的发音url
details_definitionJSONArray单词解释
details_definition_propertyString词性
details_definition_descriptionString释义
details_definition_tagString标签
details_derivationJSONArray派生词信息
details_derivation_wordString派生词内容
details_derivation_propertyString派生词词性
details_derivation_descriptionString派生词释义
details_tensesJSONArray时态
details_tenses_presentParticipleString现在分词
details_tenses_pastString过去时态
details_tenses_pastParticipleString过去分词
details_tenses_thirdPersonSingularString第三人称单数
details_expressionsJSONArray短语
details_expressions_expressionString短语内容
details_expressions_descriptionString短语解释
details_relatedJSONArray相关词汇
details_related_wordString相关词汇内容
details_related_descriptionString相关词汇描述
details_pictureString单词主题图片

口语练习#

info

该功能需要提前联系商务开通。

获取难度列表#

接口地址#

GET https://api.iflyos.cn/external/ocr/evaluate/levels

请求headers#

Authorization: Bearer {token}

返回示例#

{    "levels": [        {            "level_id": "1",            "title": "初级",            "types": ["answer"]        },        {            "level_id": "2",            "title": "中级",            "types": ["answer"]        },        {            "level_id": "3",            "title": "高级",            "types": ["translate", "answer"]        }    ]}
参数类型说明
level_idString难度ID
titleString英文单词类型固定为【en_word】
typesString题型默认为answer(问答)

获取随机题目#

接口地址#

GET https://api.iflyos.cn/external/ocr/evaluate/get_question

请求headers#

Authorization: Bearer {token}

请求参数#

参数类型说明必填
level_idString难度ID
typeString题型默认为answer(问答)

返回示例#

{    "question": {        "type": "answer",        "answers": [            "Saturday.",            "It is Saturday.",            "It's Saturday today.",            "It is Saturday today.",            "It's Saturday.",            "Today is Saturday."        ],        "audio_url": "https://etbox.oss-accelerate.aliyuncs.com/sourceaudio/se/102243ques1askaudio.wav",        "id": 865,        "text": "今天是星期六,现在是早上九点钟,你和妈妈一起在家打扫卫生。"    }}
参数类型说明
answersString题目答案
audio_urlString题目音频url
textString当前无作用
typeString题型

请求协议(新增)#

请求协议复用EVS口语评测协议,完整的请求体可参考线上文档

请求新增参数#

参数类型说明必填
evaluate.categoryString评测题型,取值见下表。
evaluate.textString评测题目文本,写法样例请参考试题text格式

evaluate.category 取值

category 取值含义备注内容支持
read_choice口语练习仅英文可用一句话,英文建议100个字符以内

返回说明#

{    "read_choice":{        "version":"7.0.0.1008",        "type":"study",        "rec_paper":{            "free_choice":{                "total_score":"0.000000",                "except_info":"0",                "end_pos":"998",                "content":"1. A book. 2. They are going to buy a book for Mike. 3. They are going to buy Mike a book.",                "beg_pos":"0"            }        },        "lan":"en"    }}
参数类型说明
versionString评测引擎版本
typeString评测类型,固定取值为study
total_scoreInt评测总分
contentString参考回答
beg_posString朗读开始时间
end_posString朗读结束时间

英语作文批改#

info

该功能需要提前联系商务开通。

请求headers

Authorization: Bearer {token}Content-Type: application/json

token为设备token

接口地址#

POST https://api.iflyos.cn/external/ocr_tool/correcting/correct

请求参数#

参数类型说明必填
textString批改文本
record_idInteger要覆盖的记录id,会覆盖对应id的批改记录,不传时创建新的批改记录

返回示例#

{    "category": "chapter_learn",    "disDimResult": {        "adva_word_num": 0,        "ccNum": "0",        "paraNum": "1",        "sentAveLen": "1.000000",        "wordAveDiff": "0.000000",        "wordAveLen": "5.000000",        "wordRichness": "1.000000"    },    "displayResultList": [        {            "lineName": "0",            "lineResult": [],            "lineStr": "22222",            "modify_sent": "",            "paraType": "1",            "startCharPos": "9"        }    ],    "engine_version": "3.5.0.1041",    "personalizedComments": "本文词汇量较少;词汇量稍显不足;下次写作希望能够丰富词汇量;加强多种句式结构的学习;增加对高级词汇的运用;",    "remarkResultList": [        {            "comments": "用词水平较高,词汇丰富,缺少高级词汇",            "type": "wordFea",            "value": 8.333333333333334        },        {            "comments": "句子比较单调,句式较简单",            "type": "sentFea",            "value": 1.25        },        {            "comments": "全篇脉络不够清晰,没有什么语法错误",            "type": "paperFea",            "value": 7.5        },        {            "comments": "基本符合题意",            "type": "contentFea",            "value": 5        }    ],    "rule_version": ""}

获取当前设备批改记录#

接口地址#

GET https://api.iflyos.cn/external/ocr_tool/correcting/correct_records

请求headers#

Authorization: Bearer {token}

请求参数#

参数类型说明必填
pageString页数,默认1
sizeString每页记录数,默认10

返回示例#

{    "total": 1,    "correct_records": [        {            "content": "测试课文批改22222",            "id": 3,            "inserted_at": "2021-11-30T07:31:50Z",            "result": {                "category": "chapter_learn",                "disDimResult": {                    "adva_word_num": 0,                    "ccNum": "0",                    "paraNum": "1",                    "sentAveLen": "1.000000",                    "wordAveDiff": "0.000000",                    "wordAveLen": "5.000000",                    "wordRichness": "1.000000"                },                "displayResultList": [                    {                        "lineName": "0",                        "lineResult": [],                        "lineStr": "22222",                        "modify_sent": "",                        "paraType": "1",                        "startCharPos": "9"                    }                ],                "engine_version": "3.5.0.1041",                "personalizedComments": "本文词汇量较少;词汇量稍显不足;下次写作希望能够丰富词汇量;加强多种句式结构的学习;增加对高级词汇的运用;",                "remarkResultList": [                    {                        "comments": "用词水平较高,词汇丰富,缺少高级词汇",                        "type": "wordFea",                        "value": 8.333333333333334                    },                    {                        "comments": "句子比较单调,句式较简单",                        "type": "sentFea",                        "value": 1.25                    },                    {                        "comments": "全篇脉络不够清晰,没有什么语法错误",                        "type": "paperFea",                        "value": 7.5                    },                    {                        "comments": "基本符合题意",                        "type": "contentFea",                        "value": 5                    }                ],                "rule_version": ""            }        }    ]}
参数类型说明
contentString批改原文
inserted_atString批改记录时间
resultString批改结果

语速设置#

endpoint

https://api.iflyos.cn

headers

Content-Type: application/jsonAuthorization: Bearer {token}

token为设备token

获取设备语速配置#

GET /external/ocr/device/voice_config

响应示例#

{    "english": "middle",    "mandarin": "slow"}

响应字段#

参数名说明
english英语语速配置(slow,middle,fast)
mandarin中文语速配置(slow,middle,fast)

更新设备语速配置#

POST /external/ocr/device/update_voice_config

请求参数#

参数名说明必填示例
language语种(english,mandarin)english
speed语速(slow,middle,fast)fast

响应示例#

Status: 200 OK
{    "message": "更新成功"}
  • 没帮助 0
  • 文档反馈