Converter manuscrito em texto
Ferramenta para converter texto manuscrito em digital: você fotografa a página escrita à mão, envia pela API e recebe a transcrição em texto editável. Pensada para quem acumula cadernos de aula, fichas antigas, atas e anotações que precisam entrar no computador — e ninguém tem coragem de redigitar. O recurso está em beta.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Da caligrafia ao texto: o que esperar
Letra de mão não é fonte de impressora, e é honesto dizer isso logo: a qualidade da transcrição depende da legibilidade do original. Uma letra de forma caprichada sai quase perfeita; uma cursiva corrida, com abreviações pessoais, pode voltar com trechos errados ou marcados como ilegíveis. O motor visual entende o contexto da frase — o que ajuda muito a decifrar palavras duvidosas —, mas não faz milagre com garranchos que nem o autor entende. Trate o resultado como um rascunho avançado: 90% do trabalho de digitação feito, restando uma revisão rápida.
Fotografando o caderno do jeito certo
A foto pesa mais aqui do que em texto impresso. Abra bem a página e evite a curvatura junto à espiral do caderno, que distorce as linhas. Luz natural lateral funciona melhor que flash, porque o brilho do flash apaga o traço de lápis e de caneta clara. Fotografe uma página por imagem, de frente, preenchendo o quadro. Tinta azul ou preta sobre papel claro é o cenário ideal; lápis fraco e caneta gel colorida sobre papel pautado escuro pedem mais luz. Cada imagem aceita até 25 MB — resolução alta é bem-vinda.
Um recurso em beta — o que isso significa
Reconhecimento de manuscrito é a fronteira mais difícil do OCR, e preferimos ser transparentes: esta capacidade está em fase beta. Ela funciona e já resolve casos reais, mas a taxa de acerto varia mais do que na leitura de texto impresso, e o comportamento com caligrafias muito particulares ainda está sendo calibrado. Na prática, isso quer dizer: revise o resultado antes de usar em documento importante e conte com melhorias contínuas. O preço não muda por ser beta — US$ 0,010 por chamada mais US$ 0,0575 por imagem, publicado e sem surpresa.
Casos de uso
Cadernos de aula viram material de estudo
Um estudante de medicina fotografa os cadernos do semestre e transcreve as anotações para montar resumos digitais com busca — anos de aula deixam de morar numa pilha de espiral.
A caderneta de fiado entra no sistema
A Padaria Pão Dourado Ltda. manteve por anos uma caderneta de fiado escrita à mão. Fotografou as páginas, transcreveu os registros e migrou tudo para uma planilha, sem redigitar cliente por cliente.
Receitas da família preservadas
Márcia Regina Oliveira digitalizou o caderno de receitas da avó — páginas amareladas, letra cursiva dos anos 1970 — e agora a família inteira tem o acervo em texto, compartilhado no grupo.
Atas e listas de presença de associação
Uma associação de moradores em Porto Alegre transcreve atas de reunião e listas de presença manuscritas para manter o histórico oficial em formato digital pesquisável.
Perguntas frequentes
Letra de médico tem chance?
Depende do médico. Falando sério: caligrafias extremamente corridas ou abreviadas são o pior cenário e podem voltar com muitos trechos incertos. O motor usa o contexto para deduzir palavras, o que salva bastante coisa, mas receitas e prontuários críticos exigem conferência humana sempre.
Cursiva e letra de forma são tratadas igual?
As duas são aceitas, mas a letra de forma rende transcrições visivelmente melhores. Cursiva regular e espaçada funciona bem; cursiva emendada e apressada aumenta a taxa de erro.
E quando a transcrição vem com erro?
Revise antes de usar — essa é a recomendação padrão enquanto o recurso está em beta. O custo por imagem é baixo justamente para caber uma segunda tentativa com foto melhor quando o resultado não convencer.
Aceita texto em português com acentuação manuscrita?
Sim, e esse é um diferencial importante: til, cedilha e acentos escritos à mão são reconhecidos e aplicados na transcrição, em vez de ignorados como em OCRs genéricos.
Qual é o preço e em que moeda?
US$ 0,010 pela chamada mais US$ 0,0575 por imagem transcrita, sempre em dólares americanos. Sem cadastro e sem plano: você paga pelo que enviar, via PayPal, e pode falar com uma pessoa por WhatsApp ou e-mail se preferir acertar antes.
Minhas anotações pessoais ficam guardadas em algum servidor?
A imagem enviada é utilizada apenas para gerar a transcrição que você recebe. Diários, cadernos e fichas costumam ser conteúdo íntimo ou sensível — o processamento acontece a seu pedido e o material não é reaproveitado para nenhum outro fim, em linha com a LGPD.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/ocr/handwriting \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/ocr/handwriting", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/handwriting",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/handwriting", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/handwriting", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.handwriting",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
max_pages | 10 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |