웹마스터 팁
폰갭 모바일 사진 분석 부터 번역까지
2017.10.16 10:41
xe 와 연동되어 개발된 어플이므로 같이 올리겠습니다.
실시간 채팅 어플에 번역을 연결해서 실시간 번역 채팅을 지원하지만 여행중 실제 안내문 번역이 필요하다고 해서 별도로 사진번역을 추가 했습니다.
사진 번역을 말그대로 스마트폰으로 사진을 찍으면 문자를 인식하는 서비스와 번역을 같이 제공합니다.
먼저 ocr api를 활용해야 하는데 구글등 대부분 유료 서비스로 제공하고 있어서 진도가 나가지 못하다가 ocr.space 를 활용 개발하게 되었습니다.
먼저 사진 업로드 이후 서버에서 사진을저장하는 부분에 아래와 같이 업로드된 사진을 ocr.space api를 활용 합니다.
<?php
//$file_name="1508059387_ef20af04b67440a7.jpg"; // 업로드된 파일 명
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.ocr.space/Parse/Image");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "isOverlayRequired=true&url=전체파일저장경로".$file_name."&language=kor");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Apikey: 발급된 키값";
$headers[] = "Content-Type: application/x-www-form-urlencoded";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
$obj=json_decode($result);
$trans_contents=$obj->ParsedResults[0]->ParsedText;
?>
이렇게 처리하면 인식된 문자를 파파고로 번역 요청합니다.
<?
$msg=$trans_contents;
$client_id = "네이버에 등록된 클라이언트 id";
$client_secret = "네이버 발급된 값";
$encText = urlencode($msg);
$postvars = "source=".$trans_language."&target=".$trans_language2."&text=".$encText;
$url = "https://openapi.naver.com/v1/papago/n2mt";
$is_post = true;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $postvars);
$headers = array();
$headers[] = "X-Naver-Client-Id: ".$client_id;
$headers[] = "X-Naver-Client-Secret: ".$client_secret;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//echo "status_code:".$status_code."<br>";
curl_close ($ch);
if($status_code == 200) {
//echo $response;
} else {
//echo "Error 내용:".$response;
}
$obj=json_decode($response);
$trans_contents=$obj->message->result->translatedText;
echo $trans_contents;
?>
여기서 원언더와 번역 언어를 선택해서 값을 보내주면 됩니다.
https://play.google.com/store/apps/details?id=com.ugtel.hancoma
xe 기반 채팅과 번역 채팅 그리고 사진 번역 어플 입니다. 테스트중 등록해 봤는데 설치해보시면 이해가 되실겁니다.