세티아(Cettear) 클라이언트
- 실시간 화면 번역 프로그램
프로그램 : Cettear_Client_20170507.zip
소스 : Cettear_20170507.zip
깃허브 : https://github.com/dang-gun/Cettear
상위 프로젝트
- 세티아(Cettear) 프로젝트 - 게임 공동 번역 플랫폼
Author : Dang-Gun Roleeyas ( http://blog.danggun.net/ )
Create date : 2017.03.14
License : GPL (GNU General Public License)
외부 참조 ( 참조된 코드와 라이브러리는 해당 라이선스를 따릅니다. )
- 키보드 후킹 코드 - A Simple C# Global Low Level Keyboard Hook (CPOL)
사용 기술 : C#, visual studio 2015
화면을 캡처 하여 구글 비전 API를 이용해 문자를 추출한 뒤 구글 번역 API를 이용하여 번역한 후 번역내용을 화면 위에 표시해주는 프로그램입니다.
프로그램을 사용하려면 구글 클라우드 플랫폼에 가입해야 합니다.
구글 클라우드 플랫폼에 가입 방법 링크
구글 클라우드 플랫폼 - 1. 가입하고 프로젝트 생성하기
구글 클라우드 플랫폼 - 2. 구글 API 사용자 인증 정보 생성하기 - 1번, 2번 생성하시고 2번을 다운로드 합니다.
구글 클라우드 플랫폼 - 3. 구글 비전 API 등록 및 사용 - 1번까지만 하면 등록됩니다.
구글 클라우드 플랫폼 - 4. 구글 번역 API 등록 및 사용 - 1번까지만 하면 등록됩니다.
원래 세티아 프로젝트를 위해서 만든 프로그램인데 중간에 안 좋은 소리를 좀 들었습니다.
그래서 만들지 않고 있다가 그래도 마무리는 해놓고 중지시켜야 겠다는 생각에 일단 만들던 부분까지만 공개합니다.
만들다 만 프로그램이라 버그가 많습니다.
(빠진 기능은 둘째 치고 말이죠 ㅎㅎㅎㅎ)
올해 안에 프로젝트를 다시 진행할 일은......없을 것으로 보입니다.
라이선스가 GPL이니 필요하신 분은 소스 가져다 만드시면 됩니다.
이 클라이언트는 기능이 계속 추가된다면 MORT처럼 될 것입니다.
(참고 : MORT - 공식 사이트)
원래 이 프로그램의 목적은 데이터 수집과 출력에 있으므로 기능 추가는 최소화해야 한다는 게 제 생각입니다.
- 화면 캡처
- 캡처된 화면에서 문자 추출(구글 비전 API 이용)
- 추출된 문자 번역(구글 번역 API 이용)
- 번역된 문자를 문자가 위치에 출력
사용하기 전에 구글 클라우드 플랫폼에 가입하셔야 합니다.
실행파일은 'Cettear.exe'입니다.
사용하기 전에 생성한 사용자 인증 정보를 입력해야 합니다.
'1) API' 탭을 누르면 '2) API 키'와 '3) API 키 파일'이 있습니다.
'2) API 키'에 생성한 'API'키를 복사해서 넣습니다.
'4) ...'버튼을 눌러 생성하여 다운로드한 '서비스 계정 키'를 지정합니다.
화면을 캡처하기 전에 캡처할 범위를 지정해야 합니다.
'1) 리모콘' 탭을 선택합니다.
'2) 캡처 범위 지정'을 누릅니다. (기본 단축키는 F2입니다.)
마우스를 드래그하여 캡처할 범위를 지정한 후 오른쪽 맨 위에 있는 완료 버튼을 눌러 줍니다.
이렇게 하면 캡처할 범위가 지정 됩니다.
이제 '4) 캡쳐 & 번역'을 누르면 번역이 됩니다.
그러면 화면에 번역된 결과가 출력됩니다.
프로그램 : Cettear_Client_20170507.zip
소스 : Cettear_20170507.zip
- 감지언어를 설정할 수 있도록 옵션 추가
- 언어 지정 관련 일부 코드 추가
- 일부 에러 화면에 표시하도록 변경
프로그램 : Cettear_Client_20170506.zip
소스 : Cettear_20170506.zip
- 'API Key'와 '사용자 계정 키'가 없을 때 이상동작 하던 현상 수정
- 'API Key'를 지정하고 프로그램을 껏다켜지 않으면 오류나던 현상 수정
프로그램 : Cettear_Client_20170505.zip
소스 : Cettear_20170505.zip
- 캡쳐파일 못찾는 버그 수정(아무개님 감사합니다.)
- 글자 겹처서 출력되던 버그 수정
프로그램 : Cettear_Client_20170502.zip
소스 : Cettear_20170502.zip
- 키보드 후킹 코드 패치 추가
- 캡처 경로 수정
프로그램 : Cettear_Client.zip
- 필요기능 일부 구현
세티아(Cettear) 클라이언트 - 화면 번역 프로그램 (38) | 2017.05.02 |
---|---|
세티아(Cettear) 프로젝트 - 게임 공동 번역 플랫폼 (0) | 2017.04.25 |
삼크(Samc) 0.65.1 - Smi 자막파일 싱크 수정 프로그램 (35) | 2017.04.10 |
[RPG Maker MV] 전투 명령 제어(Batte Command Control) - 1.00 (0) | 2017.04.02 |
[티스토리 스킨] 부트스트랩(bootstrap) + 티스토리(tistory) - 1.00 (0) | 2016.09.19 |
f:\aaa.png 경로의 일부를 찾을 수 없습니다. 라고 뜨면서 실행이 안되네요.
실수로 링크를 예전버전으로 연결해놨네요 ㅎㅎㅎ
2017.05.02버전으로 링크 바꿨습니다.
다시 받아 주세요.
똑같은 오류가 나타납니다.
아이고 죄송합니다.
저번버전에서 수정했는지 알았는데 그대로 있었네요;;
수정한 버전 새로 올렸습니다.
확인 부탁드립니다.
경로 오류는 사라졌는데 새로운 오류가 나타났네요
invalid_grant invalid jwt token must be a short-lived token and in a reasonable timeframe', Uri:''''
Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Error:"invalid_grant", Description:"Invalid JWT: Token must be a short-lived token and in a reasonable timeframe", Uri:""
위치: Google.Apis.Requests.ClientServiceRequest`1.Execute() 파일 C:\Apiary\v1.24.1\google-api-dotnet-client\Src\Support\GoogleApis\Apis\Requests\ClientServiceRequest.cs:줄 101
위치: DGU_GoogleAPI.Vision.Annotate.GetText(String sImgPath) 파일 F:\work\Project_VS\DGUtil\DGU_GoogleAPI\Vision\Annotate.cs:줄 129
위치: Cettear.frmRemote.Google_OCR() 파일 F:\work\Cettear\project\Cettear\Cettear\frmRemote.cs:줄 145
위치: Cettear.frmRemote.<StartTranslate>d__7.MoveNext() 파일 F:\work\Cettear\project\
아래는 로드된 어셈블리목록들..
api키관련해서 나는 에러인가 해서 일부로 에러상황을 만들어봤는데 다른 에러가나서 찾아보니 컴퓨터 시간과 구글서버의 시간이 너무많이 차이나면 발생하는 오류라고 합니다.
그런데 제가 임의의 시간으로 설정해서 테스트하는데도 제연이 안되고 있습니다;;;
상황에 따라서 권한이 없는 경우에도 발생한다고 합니다.
http://blog.danggun.net/4629
이 글에서 '1번'과 '3번'의 권한을 확인해 주세요.
api키가 잘못입력된 경우에도 발생할 수 있다고 합니다.
양쪽끝에 띄어쓰기가 있는지 확인 부탁 드립니다.
일단 버전업은 해두겠습니다.
생각지도 못했는데
시간오류였습니다.
인터넷시계에 들어가서 수동으로 인터넷이랑 동기화하니깐 잘되네요.(고작 몇초 차이였습니다)
당근님 아니였으면 영원히 몰랐을겁니다.
감사합니다 잘 쓰겠습니다
그리고 혹시 실례가 안된다면
http://blog.danggun.net/4621
이 소스 이용하셔서 제작 하셨다면
34번째줄에
ImageContext = new ImageContext() { LanguageHints = new List<string>() { "en" } },
에서 en 부분을 ja로 바꿔주신 버전을 따로 올려주신다면 너무 감사하겠습니다 ㅠㅠ
일본어 넣어서 테스트 중인데.....
일본어 인식이 안되고 있습니다;;;
원인을 찾고 있는데 못찾아도 저녁때쯤 일단 올리도록 하겠습니다.
일본어 감지 추가하였습니다.
감지 언어를 'ja'로 설정하신 후 '저장'을 눌러 사용하시면 됩니다.
감사합니다 잘 쓰겠습니다
문장기호가 들어가면 인식이 안되네요. 특히 말줄임표가 들어간 문장은 문장 전체를 인식 못합니다. 구글 ocr의 문제일까요?
기호가 들어간 문장은 기호를 문자로 인식해서 해석이 이상하게 되는 경우가 있긴한데 문장 자체를 인식못하는건 처음보네요.
혹시 이미지 링크 주실 수 있나요?
저 혹시 중국어는 안되나요..? 중국어 번체로 zh_tw 설정해서 썼는데
한자가 감지되다 안되다 하고ㅜㅜ심지어 감지된건 번역도 안되네요..(한글 자체가 안떠요 흑) 번역이라도 되면 좋은데..
혹시 무슨 문제가 있거나 다른 방법이 있을까 해서 댓글드려봅니다 ㅜ_ㅜ
중국어는 테스트해보질 않았는데......
혹시 중국에 캡쳐한 이미지좀 주실 수 있나요?
http://imgdb.kr/bTez
이런식으로 뜹니당 ㅜㅜㅜ 심지어 저 한자도 인식이 엄청 잘 안돼서 애썼어요.. 다른한자는 인식도 안되구 ㅜㅜ.. 번역이 안나오는건 무슨문제인가요..?흑
프로그램상에서 재대로 읽히질않습니다.
https://cloud.google.com/vision/
여기서 구글 api로 해당 이미지 체크가 어떻게 되고 있는지 확인 할 수 있는데....
결과가 안좋네요;;;
몇가지 테스트하고 싶은데 시간이 없어서 당장은 힘들것 같고 쇼셜댓글에 이미지첨부 기능이 있으니 몇장만 더 붙여주시길 바랍니다.
http://imgdb.kr/c1Jy
F4를 누르면 이런 오류가 뜹니다. 뭐가 잘못된 건가요?
구글 api와 api파일 둘다 지정했는데도 저 오류가 나나요?
네 둘 다 지정한 상태인데 그렇습니다.
해당 에러는 인증키파일이 손상되었을때 발생하는 오류입니다.
메시지로만 봐서는 파일을 읽을 수 없거나 지정하지 않은거 같은데....
키를 다시 생성해 보시거나 다른 형식으로 생성해 보시길 바랍니다.
확인하는데로 설명을 갱신하도록 하겠습니다.
api와 api파일 만드는 법을 다시 알려주실 수 없을까요? 그게 꼬인 거 같네요.
http://blog.danggun.net/4629
이글에서 1번, 2번 생성하시고 2번을 다운로드 합니다.
2번에서 받은 파일을 지정해 줍니다.
다시 해 봤지만 여전히 작동이 안 되네요.
해당 키파일로 테스틀 해보고 싶지만
민감한 정보가 들어있는 대다 api설정이 어떻게 되있는지 확인도 해야되서 어떻게 처리해야할지 고민좀 해봐야 할것 같습니다.
어떻하면 좋을까요?
가장 좋은 방법은 해당파일을 저한테 보내주는 겁니다.
비밀덧글로 이메일주소 알려주시면 전송할 주소 알려드리겠습니다.
비밀댓글입니다
아이런....큰일이네요.
구글 키파일 구조가 바뀐듯 합니다.
지들이 만든 라이브러리가 지들이 만든 파일을 못읽고 있네요 -_-;;;;;;;;;;;;;;;
원래 파일 구조는 이렇습니다.
{
"type": "service_account",
"project_id": "[프로젝트 아이디]",
"private_key_id": "[키 아이디]",
"private_key": "-----BEGIN PRIVATE KEY-----\n[키내용]\n-----END PRIVATE KEY-----\n",
"client_email": "[이메일]",
"client_id": "[클라이언트 아이디]",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/[이메일]"
}
아무래도 업데이틀 해야한는데....
제가 시간이 없어서 8~9월은 되야 할듯 합니다.
'MORT'가 훨씬 좋은 프로그램이니 이 프로그램을 활용해 주세요.
개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 라는 오류가 뜨는데, 어떻게 해결할 수 없을까요? ㅜ..
api파일이 지정되지 않았을때 나는현상인거 같은데.....
어떤상황에서 해당 에러가 났나요?
언제쯤 고쳐질까요?
아직도 바쁜게 정리가 안되서 9월중순쯤 손댈수 있을듯 합니다.
요즘은 어떠신가요? 고치실 수 있나요?
아직 바쁜일이 마무리가 안되서 중순에 작업하려고 계획을 잡고 있긴한데....오늘 일단 한번 보긴봐야겠네요.
기다려 주셔서 감사합니다.
사실 구글이 업데이트해주면 해결될거라고 생각하고 있었는데 업데이트해도 똑같네요-_-;;;;;
이 방식 자체를 지원하지 않기로한건지 다른방식으로 해야하는건지 확인해야 할거 같은데 시간이 좀 걸릴거 같습니다.
가능하면 추석전에 수정하려고했는데 그건 힘들거 같고 최악의 경우 기존 코드를 싹갈아엎어야 할거 같네요;;;
잘 되가시나요?
사실 잘안되가고 있습니다 ㅜㅡ
갈아엎고 있어요 ㅎㅎㅎㅎ
일정을 확정하지 못하고 있습니다;