From a22afe7c2d0bc45b4f0570c3082248996306eb65 Mon Sep 17 00:00:00 2001 From: changdol Date: Mon, 9 Mar 2020 18:15:48 +0900 Subject: [PATCH] =?UTF-8?q?OCR,=20CPV=20=EC=83=98=ED=94=8C=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 6 +- .../example/user/ncpaidemo/BaseActivity.java | 15 ++ .../example/user/ncpaidemo/CpvActivity.java | 100 +++++++++++ .../example/user/ncpaidemo/MainActivity.java | 7 + .../example/user/ncpaidemo/NmtActivity.java | 2 - .../example/user/ncpaidemo/OcrActivity.java | 103 +++++++++++ .../com/ncp/ai/demo/process/ChatbotProc.java | 9 - .../java/com/ncp/ai/demo/process/CpvProc.java | 85 +++++++++ .../java/com/ncp/ai/demo/process/CsrProc.java | 8 - .../java/com/ncp/ai/demo/process/CssProc.java | 3 + .../java/com/ncp/ai/demo/process/OcrProc.java | 105 ++++++++++++ app/src/main/res/drawable/ocr_sample.jpg | Bin 0 -> 63874 bytes app/src/main/res/layout/activity_auth.xml | 162 ++++++++++++------ app/src/main/res/layout/activity_cpv.xml | 74 ++++++++ app/src/main/res/layout/activity_csr.xml | 7 - app/src/main/res/layout/activity_ocr.xml | 72 ++++++++ app/src/main/res/layout/content_cpv.xml | 11 ++ app/src/main/res/layout/content_ocr.xml | 11 ++ app/src/main/res/menu/actionbar_actions.xml | 10 ++ app/src/main/res/values/arrays.xml | 24 ++- app/src/main/res/values/dimens.xml | 3 + app/src/main/res/values/strings.xml | 2 + app/src/main/res/values/styles.xml | 9 + 23 files changed, 741 insertions(+), 87 deletions(-) create mode 100644 app/src/main/java/com/example/user/ncpaidemo/CpvActivity.java create mode 100644 app/src/main/java/com/example/user/ncpaidemo/OcrActivity.java create mode 100644 app/src/main/java/com/ncp/ai/demo/process/CpvProc.java create mode 100644 app/src/main/java/com/ncp/ai/demo/process/OcrProc.java create mode 100644 app/src/main/res/drawable/ocr_sample.jpg create mode 100644 app/src/main/res/layout/activity_cpv.xml create mode 100644 app/src/main/res/layout/activity_ocr.xml create mode 100644 app/src/main/res/layout/content_cpv.xml create mode 100644 app/src/main/res/layout/content_ocr.xml create mode 100644 app/src/main/res/values/dimens.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32289d3..bb2dc9c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,8 +25,10 @@ - - + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/user/ncpaidemo/BaseActivity.java b/app/src/main/java/com/example/user/ncpaidemo/BaseActivity.java index 7ef476c..88e0b6b 100644 --- a/app/src/main/java/com/example/user/ncpaidemo/BaseActivity.java +++ b/app/src/main/java/com/example/user/ncpaidemo/BaseActivity.java @@ -67,6 +67,21 @@ public boolean onOptionsItemSelected(MenuItem item) { return true; + case R.id.menu_cpv: + + intent = new Intent(getApplicationContext(), CpvActivity.class); + startActivity(intent); + + return true; + + + case R.id.menu_ocr: + + intent = new Intent(getApplicationContext(), OcrActivity.class); + startActivity(intent); + + return true; + default : return super.onOptionsItemSelected(item); } diff --git a/app/src/main/java/com/example/user/ncpaidemo/CpvActivity.java b/app/src/main/java/com/example/user/ncpaidemo/CpvActivity.java new file mode 100644 index 0000000..8c760f5 --- /dev/null +++ b/app/src/main/java/com/example/user/ncpaidemo/CpvActivity.java @@ -0,0 +1,100 @@ +package com.example.user.ncpaidemo; + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.ncp.ai.demo.process.CpvProc; + +public class CpvActivity extends BaseActivity { + + Button cpvBtn; + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_cpv); + + SharedPreferences sharedPref = getSharedPreferences("PREF", Context.MODE_PRIVATE); + final String clientId = sharedPref.getString("application_client_id", ""); + final String clientSecret = sharedPref.getString("application_client_secret", ""); + + cpvBtn = (Button) findViewById(R.id.btn_cpv); + cpvBtn.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + + EditText cpvInputText = (EditText) findViewById(R.id.text_input_cpv); + String strText = cpvInputText.getText().toString(); + + Spinner spinner = (Spinner)findViewById(R.id.spinner_cpv_lang); + String selItem = spinner.getSelectedItem().toString(); + + String[] splits = selItem.split("\\("); + + String speaker = splits[0]; + + if (speaker.isEmpty() || speaker.equals("")){ + speaker = "mijin"; + } + + CpvActivity.NaverTTSTask tts = new CpvActivity.NaverTTSTask(); + tts.execute(strText, speaker, clientId, clientSecret); + } + }); + + Spinner s = (Spinner)findViewById(R.id.spinner_cpv_lang); + s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, + int position, long id) { + + Spinner s = (Spinner)findViewById(R.id.spinner_cpv_lang); + String lang = s.getSelectedItem().toString(); + String text = ""; + if (lang.contains("한국어")) { + text = "네이버 클라우드 플랫폼에서는 Clova, papago 등 네이버의 다양한 인공지능 서비스를 API 형태로 제공합니다."; + }else if (lang.contains("영어")) { + text = "NAVER CLOUD PLATFORM provides various AI services in API formats, such as Clova and Papago."; + }else if (lang.contains("일본어")) { + text = "NAVER CLOUD PLATFORMは、ClovaやPapagoなどのAPIフォーマットでさまざまなAIサービスを提供します."; + + }else if (lang.contains("중국어")) { + text = "NAVER CLOUD PLATFORM以API格式提供各种AI服务,例如Clova和Papago."; + + }else if (lang.contains("스페인어")) { + text = "NAVER CLOUD PLATFORM proporciona varios servicios de AI en formatos API, como Clova y Papago."; + + }else { + text = ""; + } + + TextView textViewVersionInfo = (TextView) findViewById(R.id.text_input_cpv); + textViewVersionInfo.setText(text); + + } + @Override + public void onNothingSelected(AdapterView parent) {} + }); + + } + + public class NaverTTSTask extends AsyncTask { + + @Override + public String doInBackground(String... strings) { + + CpvProc.main(strings[0], strings[1], strings[2], strings[3]); + return null; + } + } + +} diff --git a/app/src/main/java/com/example/user/ncpaidemo/MainActivity.java b/app/src/main/java/com/example/user/ncpaidemo/MainActivity.java index 8f49282..e2f60c1 100644 --- a/app/src/main/java/com/example/user/ncpaidemo/MainActivity.java +++ b/app/src/main/java/com/example/user/ncpaidemo/MainActivity.java @@ -4,6 +4,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; +import android.os.StrictMode; import android.widget.TextView; public class MainActivity extends BaseActivity { @@ -13,6 +14,12 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + if (android.os.Build.VERSION.SDK_INT > 9) + { + StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); + StrictMode.setThreadPolicy(policy); + } + String versionName = ""; try { diff --git a/app/src/main/java/com/example/user/ncpaidemo/NmtActivity.java b/app/src/main/java/com/example/user/ncpaidemo/NmtActivity.java index 27e608d..725227e 100644 --- a/app/src/main/java/com/example/user/ncpaidemo/NmtActivity.java +++ b/app/src/main/java/com/example/user/ncpaidemo/NmtActivity.java @@ -101,8 +101,6 @@ public void ReturnThreadResult(String result) { } catch (Exception e){ } - - } public class PapagoNmtTask extends AsyncTask { diff --git a/app/src/main/java/com/example/user/ncpaidemo/OcrActivity.java b/app/src/main/java/com/example/user/ncpaidemo/OcrActivity.java new file mode 100644 index 0000000..d8c07e1 --- /dev/null +++ b/app/src/main/java/com/example/user/ncpaidemo/OcrActivity.java @@ -0,0 +1,103 @@ +package com.example.user.ncpaidemo; + +import android.content.Context; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Bundle; +import android.provider.MediaStore; +import android.provider.Settings; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.util.JsonReader; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; + +import com.ncp.ai.demo.process.NmtProc; +import com.ncp.ai.demo.process.OcrProc; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.net.URL; + +public class OcrActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_ocr); + + SharedPreferences sharedPref = getSharedPreferences("PREF", Context.MODE_PRIVATE); + + final String ocrApiGwUrl = sharedPref.getString("ocr_api_gw_url", ""); + final String ocrSecretKey = sharedPref.getString("ocr_secret_key", ""); + + Button ocrTranslateBtn; + + ocrTranslateBtn = (Button) findViewById(R.id.btn_ocr_translate); + ocrTranslateBtn.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + + OcrActivity.PapagoNmtTask nmtTask = new OcrActivity.PapagoNmtTask(); + nmtTask.execute(ocrApiGwUrl, ocrSecretKey); + } + }); + } + + public class PapagoNmtTask extends AsyncTask { + + @Override + public String doInBackground(String... strings) { + + return OcrProc.main(strings[0], strings[1]); + } + + @Override + protected void onPostExecute(String result) { + + ReturnThreadResult(result); + } + } + + public void ReturnThreadResult(String result) { + System.out.println("### Retrun Thread Result"); + String translateText = ""; + + String rlt = result; + try { + JSONObject jsonObject = new JSONObject(rlt); + + JSONArray jsonArray = jsonObject.getJSONArray("images"); + + for (int i = 0; i < jsonArray.length(); i++ ){ + + JSONArray jsonArray_fields = jsonArray.getJSONObject(i).getJSONArray("fields"); + + for (int j=0; j < jsonArray_fields.length(); j++ ){ + + String inferText = jsonArray_fields.getJSONObject(j).getString("inferText"); + translateText += inferText; + translateText += " "; + } + } + + TextView txtResult = (TextView) findViewById(R.id.textView_ocr_result); + txtResult.setText(translateText); + + } catch (Exception e){ + + } + } +} diff --git a/app/src/main/java/com/ncp/ai/demo/process/ChatbotProc.java b/app/src/main/java/com/ncp/ai/demo/process/ChatbotProc.java index d375be1..cc7c987 100644 --- a/app/src/main/java/com/ncp/ai/demo/process/ChatbotProc.java +++ b/app/src/main/java/com/ncp/ai/demo/process/ChatbotProc.java @@ -1,25 +1,16 @@ package com.ncp.ai.demo.process; -import android.media.MediaPlayer; -import android.os.Environment; import android.util.Base64; import java.io.BufferedReader; import java.io.DataOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; import java.io.InputStreamReader; -import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.net.URLEncoder; -import java.security.Timestamp; import java.util.Date; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; -import android.util.Base64; import org.json.JSONArray; import org.json.JSONObject; diff --git a/app/src/main/java/com/ncp/ai/demo/process/CpvProc.java b/app/src/main/java/com/ncp/ai/demo/process/CpvProc.java new file mode 100644 index 0000000..2c59e23 --- /dev/null +++ b/app/src/main/java/com/ncp/ai/demo/process/CpvProc.java @@ -0,0 +1,85 @@ +package com.ncp.ai.demo.process; + +import android.media.MediaPlayer; +import android.os.Environment; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; + +public class CpvProc { + + + public static void main(String msg, String speaker, String clientId, String clientSecret) { + + try { + String text = URLEncoder.encode(msg, "UTF-8"); + String apiURL = "https://naveropenapi.apigw.ntruss.com/voice-premium/v1/tts"; + URL url = new URL(apiURL); + HttpURLConnection con = (HttpURLConnection)url.openConnection(); + con.setRequestMethod("POST"); + con.setRequestProperty("X-NCP-APIGW-API-KEY-ID", clientId); + con.setRequestProperty("X-NCP-APIGW-API-KEY", clientSecret); + // post request + String postParams = "speaker="+speaker+"&speed=0&text="+text; + System.out.println(postParams); + con.setDoOutput(true); + DataOutputStream wr = new DataOutputStream(con.getOutputStream()); + wr.writeBytes(postParams); + wr.flush(); + wr.close(); + int responseCode = con.getResponseCode(); + BufferedReader br; + System.out.println("## response code : "+responseCode); + if(responseCode==200) { // 정상 호출 + InputStream is = con.getInputStream(); + int read = 0; + byte[] bytes = new byte[1024]; + + File dir = new File(Environment.getExternalStorageDirectory()+"/", "NCP"); + + if(!dir.exists()){ + dir.mkdirs(); + } + + String tempname = "csstemp"; + File f = new File( Environment.getExternalStorageDirectory() + File.separator + "NCP/" + tempname + ".mp3"); + f.createNewFile(); + OutputStream outputStream = new FileOutputStream(f); + while ((read =is.read(bytes)) != -1) { + outputStream.write(bytes, 0, read); + } + is.close(); + + String pathToFile = Environment.getExternalStorageDirectory() + File.separator + "NCP/" + tempname + ".mp3"; + MediaPlayer audioPlay = new MediaPlayer(); + audioPlay.setDataSource(pathToFile); + audioPlay.prepare(); + audioPlay.start(); + + System.out.println("## fie path : "+ pathToFile); + + } else { // 에러 발생 + br = new BufferedReader(new InputStreamReader(con.getErrorStream())); + String inputLine; + StringBuffer response = new StringBuffer(); + while ((inputLine = br.readLine()) != null) { + response.append(inputLine); + } + br.close(); + System.out.println(response.toString()); + } + } catch (Exception e) { + System.out.println(e); + } + } + + +} diff --git a/app/src/main/java/com/ncp/ai/demo/process/CsrProc.java b/app/src/main/java/com/ncp/ai/demo/process/CsrProc.java index cdd8e0d..cbc1de7 100755 --- a/app/src/main/java/com/ncp/ai/demo/process/CsrProc.java +++ b/app/src/main/java/com/ncp/ai/demo/process/CsrProc.java @@ -36,14 +36,6 @@ public CsrProc(Context context, String clientId) { mRecognizer = new SpeechRecognizer(context, clientId); } catch (SpeechRecognitionException e) { - // 예외가 발생하는 경우는 아래와 같습니다. - // 1. activity 파라미터가 올바른 MainActivity의 인스턴스가 아닙니다. - // 2. AndroidManifest.xml에서 package를 올바르게 등록하지 않았습니다. - // 3. package를 올바르게 등록했지만 과도하게 긴 경우, 256바이트 이하면 좋습니다. - // 4. clientId가 null인 경우 - // - // 개발하면서 예외가 발생하지 않았다면 실서비스에서도 예외는 발생하지 않습니다. - // 개발 초기에만 주의하시면 됩니다. e.printStackTrace(); } diff --git a/app/src/main/java/com/ncp/ai/demo/process/CssProc.java b/app/src/main/java/com/ncp/ai/demo/process/CssProc.java index f58fe08..964ed64 100644 --- a/app/src/main/java/com/ncp/ai/demo/process/CssProc.java +++ b/app/src/main/java/com/ncp/ai/demo/process/CssProc.java @@ -38,6 +38,7 @@ public static void main(String msg, String speaker, String clientId, String clie wr.close(); int responseCode = con.getResponseCode(); BufferedReader br; + System.out.println("## response code : "+responseCode); if(responseCode==200) { // 정상 호출 InputStream is = con.getInputStream(); int read = 0; @@ -64,6 +65,8 @@ public static void main(String msg, String speaker, String clientId, String clie audioPlay.prepare(); audioPlay.start(); + System.out.println("## fie path : "+ pathToFile); + } else { // 에러 발생 br = new BufferedReader(new InputStreamReader(con.getErrorStream())); String inputLine; diff --git a/app/src/main/java/com/ncp/ai/demo/process/OcrProc.java b/app/src/main/java/com/ncp/ai/demo/process/OcrProc.java new file mode 100644 index 0000000..33113aa --- /dev/null +++ b/app/src/main/java/com/ncp/ai/demo/process/OcrProc.java @@ -0,0 +1,105 @@ +package com.ncp.ai.demo.process; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Date; +import java.util.UUID; + + +public class OcrProc { + + public static String main(String ocrApiUrl, String ocrSecretKey) { + + String ocrMessage = ""; + + try { + + String apiURL = ocrApiUrl; + String secretKey = ocrSecretKey; + + String objectStorageURL = "https://kr.object.ncloudstorage.com/labs/ocr/ocr_sample.jpg"; + + URL url = new URL(ocrApiUrl); + + String message = getReqMessage(objectStorageURL); + System.out.println("##" + message); + + long timestamp = new Date().getTime(); + + HttpURLConnection con = (HttpURLConnection)url.openConnection(); + con.setRequestMethod("POST"); + con.setRequestProperty("Content-Type", "application/json;UTF-8"); + con.setRequestProperty("X-OCR-SECRET", secretKey); + + // post request + con.setDoOutput(true); + DataOutputStream wr = new DataOutputStream(con.getOutputStream()); + wr.write(message.getBytes("UTF-8")); + wr.flush(); + wr.close(); + + int responseCode = con.getResponseCode(); + + if(responseCode==200) { // 정상 호출 + System.out.println(con.getResponseMessage()); + + BufferedReader in = new BufferedReader( + new InputStreamReader( + con.getInputStream())); + String decodedString; + while ((decodedString = in.readLine()) != null) { + ocrMessage = decodedString; + } + //chatbotMessage = decodedString; + in.close(); + + } else { // 에러 발생 + ocrMessage = con.getResponseMessage(); + + } + } catch (Exception e) { + System.out.println(e); + } + + System.out.println(">>>>>>>>>>"+ ocrMessage); + return ocrMessage; + } + + public static String getReqMessage(String objectStorageURL) { + + String requestBody = ""; + + try { + + long timestamp = new Date().getTime(); + + JSONObject json = new JSONObject(); + json.put("version", "V1"); + json.put("requestId", UUID.randomUUID().toString()); + json.put("timestamp", Long.toString(timestamp)); + JSONObject image = new JSONObject(); + image.put("format", "jpg"); + image.put("url", objectStorageURL); + + image.put("name", "test_ocr"); + JSONArray images = new JSONArray(); + images.put(image); + json.put("images", images); + + requestBody = json.toString(); + + } catch (Exception e){ + System.out.println("## Exception : " + e); + } + + return requestBody; + + } + +} diff --git a/app/src/main/res/drawable/ocr_sample.jpg b/app/src/main/res/drawable/ocr_sample.jpg new file mode 100644 index 0000000000000000000000000000000000000000..75481d94cd068f776fc4dcf0e5e9d3380d6bd056 GIT binary patch literal 63874 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 L;qm|X_YM3nwf>R? literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_auth.xml b/app/src/main/res/layout/activity_auth.xml index ae058df..995d819 100644 --- a/app/src/main/res/layout/activity_auth.xml +++ b/app/src/main/res/layout/activity_auth.xml @@ -6,6 +6,69 @@ android:layout_height="match_parent" tools:context=".AuthActivity"> + + + + + + + + + + - - - + app:layout_constraintTop_toBottomOf="@+id/textView16" /> - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/textView" /> + app:layout_constraintTop_toBottomOf="@+id/textView8" /> + + + app:layout_constraintTop_toBottomOf="@+id/text_input_ocr_secret_key" /> + app:layout_constraintTop_toTopOf="@+id/btn_auth" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_cpv.xml b/app/src/main/res/layout/activity_cpv.xml new file mode 100644 index 0000000..04e889e --- /dev/null +++ b/app/src/main/res/layout/activity_cpv.xml @@ -0,0 +1,74 @@ + + + + + +