마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 API 관련 질문입니다

0 추천

CPV를 사용하려고 하는데요 

https://api.ncloud-docs.com/docs/ai-naver-clovavoice-ttspremium 여기를 참고하고

https://blog.naver.com/jcosmoss/220963959630 여기도 참고하고 

https://github.com/NaverCloudPlatform/android-ai-sample 여기거 다 참고해서 어떻게든 해보려고 했는데요 ㅠㅠ 

현재 asynctask는 안된다고 해서요,,, 지금 저 코드를 스레드로 바꿔서 실행을 해보면 
I/System.out: ## response code : 403
I/System.out: {"error":{"errorCode":"230","message":"Forbidden","details":""}} 

오류가 납니다 ㅠㅠ 어떻게 해야 할까요,,,?

 

깃 예제에 있는 CpvProc는 추가해놨습니다!
yuymum2 (150 포인트) 님이 2023년 6월 4일 질문

1개의 답변

0 추천
 
채택된 답변
해당 에러메세지는 API접근 권한이 없어서 그런 것 같네요.

curl -i -X POST \
    -H "Content-Type:application/x-www-form-urlencoded" \
    -H "X-NCP-APIGW-API-KEY-ID:{애플리케이션 등록 시 발급받은 client id값}" \ <-- 요기
    -H "X-NCP-APIGW-API-KEY:{애플리케이션 등록 시 발급받은 client secret값}" \ <-- 요기
    -d 'speaker={목소리 종류}&text={텍스트}&volume={볼륨}&speed={음성 재생 속도}&pitch={피치}' \

 'https://naveropenapi.apigw.ntruss.com/tts-premium/v1/tts'

해당 요청을 보면 client id와 client secret를 전달해 주어야 하는데, 이건 보통 API 제공업체에 내 앱을 등록한 후 발급받는 정보이므로, 확인하셔서 처리하시면 됩니다.

그리고 네트워크 호출 시 쓰레딩에 대한 부분은 Java 사용자라면 아래 글을 참조하시면 해결이 될 겁니다.

https://www.simplifiedcoding.net/android-asynctask/

또는 구글의 샘플코드 중
https://github.com/android/architecture-components-samples/blob/main/GithubBrowserSample/app/src/main/java/com/android/example/github/AppExecutors.kt
https://github.com/c0de-wizard/android-liveData-viewModel/blob/master/app/src/main/java/com/thomaskioko/livedatademo/repository/util/NetworkBoundResource.java

를 참조하시면 됩니다. 코틀린 소스이지만 자바에서도 잘 동작하는 코드입니다. ChaptGPT에서 자바로 변환해 달라고 하세요.)

코틀린의 경우는 코루틴을 사용하시면 됩니다.
spark (227,530 포인트) 님이 2023년 6월 4일 답변
yuymum2님이 2023년 6월 4일 채택됨
감사합니다!! 도전하겠습니다!!!!
예제의 Java  파일들을 보시면
final String clientId = sharedPref.getString("application_client_id", "");
final String clientSecret = sharedPref.getString("application_client_secret", "");

위의 코드가 제가 말씀드린 부분 같네요.

그리고 위의 값들은 나중에 build.gradle로 옮겨서 처리하는게 보안상 안전합니다. 링크 참조하세요. https://developer.android.com/build/gradle-tips#simplify-app-development
...