功能
将图片与文档转为可用的文字
文字识别(OCR)API 可从图片中检测并提取文字(文字检测),也可处理扫描件、PDF 和 TIFF 等文字密集的文档(文档文字检测),返回文字内容及其版面结构和位置坐标。接口兼容 Google Cloud Vision 的 images:annotate 与 files:annotate REST 规范。
文字检测
使用 TEXT_DETECTION 识别照片、截图、标牌和商品标签中的零散文字。
文档文字检测
使用 DOCUMENT_TEXT_DETECTION 识别扫描件、票据、发票、表单和合同中的密集文字。
印刷体与手写体
同时识别印刷体与手写文字,例如笔记、手填表单和批注。
PDF、TIFF 与 GIF 文件
直接提交多页文件,单次同步请求最多可识别 5 页。
位置坐标与版面结构
返回逐词的位置坐标以及带有页面结构的完整文字,便于还原版面。
数十种语言
支持数十种语言,包括中文、日文和韩文。已知语言时,可通过 languageHints 提供提示。
应用场景
文字识别 API 的典型用途
票据与发票
提取商户、日期和明细,用于报销与记账流程。
表单与合同
将申请表、协议等纸质文件数字化,便于审核与检索。
照片与截图
识别用户拍摄的标牌、标签和屏幕上的文字。
可检索的档案
将扫描文档与 PDF 档案转为可索引、可检索的文字。
快速入门
识别您的第一张图片
在 Vionex 控制台中创建 API 密钥,然后发送图片或文档。
https://api.vionexlimited.com
X-Api-Key 请求头、Authorization: Bearer 或 ?key=
-
识别图片中的文字
将图片以 base64 形式放入
image.content,并选择TEXT_DETECTION或DOCUMENT_TEXT_DETECTION。完整文字位于fullTextAnnotation.text,textAnnotations列出每个词及其位置坐标。- 单次请求最多 16 张图片
image.content的 base64 内容最大 10 MB,也可在image.source.imageUri中提供公开的https://地址- 可选的
imageContext.languageHints,例如["en", "zh"]
# macOS 上请将 base64 -w0 FILE 改为 base64 -i FILE curl -X POST "https://api.vionexlimited.com/v1/images:annotate" \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "requests": [{ "image": {"content": "'"$(base64 -w0 receipt.jpg)"'"}, "features": [{"type": "DOCUMENT_TEXT_DETECTION"}], "imageContext": {"languageHints": ["en", "zh"]} }] }'import base64 import requests with open("receipt.jpg", "rb") as f: content = base64.b64encode(f.read()).decode() resp = requests.post( "https://api.vionexlimited.com/v1/images:annotate", headers={"X-Api-Key": "YOUR_API_KEY"}, json={ "requests": [{ "image": {"content": content}, "features": [{"type": "DOCUMENT_TEXT_DETECTION"}], "imageContext": {"languageHints": ["en", "zh"]}, }] }, timeout=60, ) resp.raise_for_status() print(resp.json()["responses"][0]["fullTextAnnotation"]["text"])import { readFile } from "node:fs/promises"; const content = (await readFile("receipt.jpg")).toString("base64"); const resp = await fetch("https://api.vionexlimited.com/v1/images:annotate", { method: "POST", headers: { "X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ requests: [{ image: { content }, features: [{ type: "DOCUMENT_TEXT_DETECTION" }], imageContext: { languageHints: ["en", "zh"] }, }], }), }); const { responses } = await resp.json(); console.log(responses[0].fullTextAnnotation.text);{ "responses": [ { "textAnnotations": [ { "locale": "en", "description": "MEETING NOTES\nRoom 4A · 10:00\n", "boundingPoly": { "vertices": [ {"x": 32, "y": 24}, {"x": 418, "y": 24}, {"x": 418, "y": 118}, {"x": 32, "y": 118} ] } }, { "description": "MEETING", "boundingPoly": { "vertices": [ {"x": 32, "y": 24}, {"x": 196, "y": 24}, {"x": 196, "y": 62}, {"x": 32, "y": 62} ] } } ], "fullTextAnnotation": { "text": "MEETING NOTES\nRoom 4A · 10:00\n" } } ] } -
识别 PDF、TIFF 与 GIF 文件
调用
files:annotate,在inputConfig.content中传入文件并指定mimeType,每一页都会返回单独的结果。- 每个文件最多 5 页,可通过
pages指定(默认前 5 页) totalPages返回整个文件的总页数
# macOS 上请将 base64 -w0 FILE 改为 base64 -i FILE curl -X POST "https://api.vionexlimited.com/v1/files:annotate" \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "requests": [{ "inputConfig": { "content": "'"$(base64 -w0 contract.pdf)"'", "mimeType": "application/pdf" }, "features": [{"type": "DOCUMENT_TEXT_DETECTION"}], "pages": [1, 2, 3] }] }'import base64 import requests with open("contract.pdf", "rb") as f: content = base64.b64encode(f.read()).decode() resp = requests.post( "https://api.vionexlimited.com/v1/files:annotate", headers={"X-Api-Key": "YOUR_API_KEY"}, json={ "requests": [{ "inputConfig": {"content": content, "mimeType": "application/pdf"}, "features": [{"type": "DOCUMENT_TEXT_DETECTION"}], "pages": [1, 2, 3], }] }, timeout=120, ) resp.raise_for_status() result = resp.json()["responses"][0] for page in result["responses"]: print(page["fullTextAnnotation"]["text"]) print("Total pages:", result["totalPages"])import { readFile } from "node:fs/promises"; const content = (await readFile("contract.pdf")).toString("base64"); const resp = await fetch("https://api.vionexlimited.com/v1/files:annotate", { method: "POST", headers: { "X-Api-Key": "YOUR_API_KEY", "Content-Type": "application/json", }, body: JSON.stringify({ requests: [{ inputConfig: { content, mimeType: "application/pdf" }, features: [{ type: "DOCUMENT_TEXT_DETECTION" }], pages: [1, 2, 3], }], }), }); const [file] = (await resp.json()).responses; for (const page of file.responses) { console.log(page.fullTextAnnotation.text); } console.log("Total pages:", file.totalPages); - 每个文件最多 5 页,可通过
API 接口
| 方法 | 接口 | 说明 |
|---|---|---|
| POST | /v1/images:annotate | 识别最多 16 张图片中的文字(兼容 Cloud Vision) |
| POST | /v1/files:annotate | 识别 PDF、TIFF 与 GIF 文件中的文字,每个文件最多 5 页 |
价格
按图片计费
以美元计价,按月阶梯计费,每项 OCR 功能分别计费。
| 每月用量 | 价格(美元) |
|---|---|
| OCR 文字检测(按图片或页计)每月前 1,000 个单位免费 | |
| 每月 0 – 1,000 张图片 | 免费 |
| 每月 1,000 – 500 万张图片 | 每 1,000 张图片 $1.50 |
| 每月超过 500 万张图片 | 每 1,000 张图片 $0.60 |
| OCR 文档文字检测(按图片或页计)每月前 1,000 个单位免费 | |
| 每月 0 – 1,000 张图片 | 免费 |
| 每月 1,000 – 500 万张图片 | 每 1,000 张图片 $1.50 |
| 每月超过 500 万张图片 | 每 1,000 张图片 $0.60 |
- 对一张图片应用一项 OCR 功能计为一个单位:同一张图片同时使用文字检测与文档文字检测,计为两个单位。
- PDF、TIFF 或 GIF 文件的每一页计为一张图片。
- 价格按每 1,000 张图片计,不足一个计价单位的部分按比例计费,只为实际用量付费。
- 只有成功处理的图片才会计费。
示例:一个月内使用文字检测处理 5,300 张图片,费用为 $6.45(其中 1,000 张图片免费 · 4,300 张图片,每 1,000 张图片 $1.50)。