이전 포스트에 (http://ifmkl.tistory.com/354) Naver OpenAPI 인 Clova Speech Synthesis API 사용하기를 작성했었습니다. 그런데 오랜만에 들어가보니 해당 API가 NBP(네이버 비즈니스 플랫폼 - 클라우드 서비스)쪽으로 이관되었더군요.. 즉 무료에서 -> 유료가 되었습니다... 다만 네이버 비즈니스 플랫폼의 경우 신규 사용자에겐 30만 크레딧을 제공하므로 이 크레딧 유효 기간동안은 테스트는 해볼수 있을 듯합니다. 변경된 개발 문서는 http://docs.ncloud.com/ko/naveropenapi_v2/naveropenapi-4-2.html 이고 NBP 가입 후 로그인 후 콘솔에서 접속하면 다음 메뉴에서 api 를 신청할 수 있습니다. 어플리케이션 ..
Read MoreNaver TTS API를 사용하기 위해서는 먼저 아래 링크를 참고하여 API 이용신청을 먼저 해야 한다. https://developers.naver.com/docs/clova/api/#/CSS/API_Guide.md#clova-speech-synthesis-api-가이드 이후 발급받은 키와 시크릿 키를 가지고 진행한다. 위 가이드에는 Golang 구현 예제가 없어 아래와 같이 테스트 해보았다. (소스는 테스트 목적으로 허접...) 다른 언어들의 경우 대부분 위 링크에 나와 있으니 참고할 것. 123456789101112131415161718192021222324252627282930313233343536373839404142434445package main import ( "bytes" "fmt" "..
Read MoreTTS API 관심이 있어서 (영어 재생) Google, Naver, Voice RSS 3개 테스트를 해보았는데 Naver의 API 영어 TTS 가 생각보다 품질이 훌륭해서 놀랐음. Google, Voice RSS 쪽도 나쁘진 않고 Voice RSS 는 미국, 영국, 호주 버전이 존재해서 선택지가 다양한데 Naver는 일단 여성, 남성만 선택이 가능 하긴 하나 생각보다 괜찮음.. 테스트 한 이유는 토익 공부하며 오답노트 웹앱을 만드는데 뷰는 Vue.js 로 작업 / 백엔드는 Golang 으로 해당 웹앱에 접속하면 입력해둔 틀린 문제 중 임의로 한문제가 나오고 해당 문제를 풀도록 되어 있다. 일반적인 문법은 큰 문제가 없는데.. LC는 어떻게 할까 생각해보다가 TTS API를 테스트 해본것. Naver 구..
Read More[클라우드] 변경된 Naver TTS(CSS) API 사용해보기
이전 포스트에 (http://ifmkl.tistory.com/354) Naver OpenAPI 인 Clova Speech Synthesis API 사용하기를 작성했었습니다.
그런데 오랜만에 들어가보니 해당 API가 NBP(네이버 비즈니스 플랫폼 - 클라우드 서비스)쪽으로 이관되었더군요..
즉 무료에서 -> 유료가 되었습니다...
다만 네이버 비즈니스 플랫폼의 경우 신규 사용자에겐 30만 크레딧을 제공하므로 이 크레딧 유효 기간동안은
테스트는 해볼수 있을 듯합니다.
변경된 개발 문서는 http://docs.ncloud.com/ko/naveropenapi_v2/naveropenapi-4-2.html 이고
NBP 가입 후 로그인 후 콘솔에서 접속하면 다음 메뉴에서 api 를 신청할 수 있습니다.
어플리케이션 등록 -> 클로바에 CSS 체크하여 신청하면 됩니다. 그러면 한도 설정을 할 수 있는데 당일 / 당월 설정이 가능하고 요금은
월 300만자 기준으로 12,000원 (VAT별도) 정도 나옵니다.
기존의 소스는 동일하고 다만 기존 소스의
api_uri가 https://openapi.naver.com/v1/voice/tts.bin --> https://naveropenapi.apigw.ntruss.com/voice/v1/tts 으로 변경 되었고
api_key는 신청한 어플리케이션의 client_id / api_secret는 client_secret 으로 사용하면 됩니다.
이후 헤더에 추가하는
는 아래 처럼 변경해줍니다.
그러면 소스를 다시 빌드하여 실행하고 로컬에서 테스트하면
# curl "localhost:3000/tts"
# ls
api api.go out.mp3
으로 잘 실행되는 것을 확인할 수 있습니다.
'Work/LINUX+SERVER' Related Articles / more
[Golang] Golang으로 Naver TTS (Clova Speech Synthesis API) 사용하기
Naver TTS API를 사용하기 위해서는 먼저 아래 링크를 참고하여 API 이용신청을 먼저 해야 한다.
https://developers.naver.com/docs/clova/api/#/CSS/API_Guide.md#clova-speech-synthesis-api-가이드
이후 발급받은 키와 시크릿 키를 가지고 진행한다.
위 가이드에는 Golang 구현 예제가 없어 아래와 같이 테스트 해보았다. (소스는 테스트 목적으로 허접...)
다른 언어들의 경우 대부분 위 링크에 나와 있으니 참고할 것.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | package main import ( "bytes" "fmt" "io" "net/http" "net/url" "os" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.GET("/tts", func(c *gin.Context) { api_uri := "https://openapi.naver.com/v1/voice/tts.bin" client_key := "api_key" client_secret := "api_secret" data := url.Values{} data.Set("speaker", "clara") data.Add("speed", "0") data.Add("text", "Hello, Clara.") client := &http.Client{} req, _ := http.NewRequest("POST", api_uri, bytes.NewBufferString(data.Encode())) req.Header.Add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8") req.Header.Add("X-Naver-Client-Id", client_key) req.Header.Add("X-Naver-Client-Secret", client_secret) resp, _ := client.Do(req) fmt.Println(resp.Status) defer resp.Body.Close() out, _ := os.Create("out.mp3") io.Copy(out, resp.Body) c.JSON(http.StatusOK, gin.H{ "result": "ok", }) }) } | cs |
이걸 테스트 한 목적은 이전 글에서 작성한 것처럼 토익 공부 중에 오답노트 웹앱을 만드는데
LC를 어떻게 하면 좋을까 생각하다가 TTS API를 활용해보기로 한것.
Golang 을 백엔드로 사용하고 있기 때문에 Golang 으로 구현해보았고 이걸 이용해서 LC 오답문제를
불러오면 해당 메세지를 위 api로 mp3로 변환 후 재생해줄 예정이다.
다만 미흡한 점이 메세지가 바로 바로 재생되고 중간에 스페이스로 메세지간에 공백을 넣어도 문장 간 여백을
설정할 수 없는 점이 있다. 아쉬운 부분이 있지만 Naver TTS API 품질이 생각보다 만족스러워서 다행이다.
참고 링크
https://stackoverflow.com/questions/19253469/make-a-url-encoded-post-request-using-http-newrequest
https://stackoverflow.com/questions/16311232/how-to-pipe-an-http-response-to-a-file-in-go
http://golang.site/go/article/103-HTTP-POST-%ED%98%B8%EC%B6%9C
'Work/PROJECT' Related Articles / more
Discuss about post
TTS API 테스트 기
TTS API 관심이 있어서 (영어 재생)
Google, Naver, Voice RSS 3개 테스트를 해보았는데
Naver의 API 영어 TTS 가 생각보다 품질이 훌륭해서 놀랐음.
Google, Voice RSS 쪽도 나쁘진 않고 Voice RSS 는 미국, 영국, 호주 버전이 존재해서
선택지가 다양한데 Naver는 일단 여성, 남성만 선택이 가능 하긴 하나
생각보다 괜찮음..
테스트 한 이유는
토익 공부하며 오답노트 웹앱을 만드는데
뷰는 Vue.js 로 작업 / 백엔드는 Golang 으로 해당 웹앱에 접속하면
입력해둔 틀린 문제 중 임의로 한문제가 나오고 해당 문제를 풀도록 되어 있다.
일반적인 문법은 큰 문제가 없는데.. LC는 어떻게 할까 생각해보다가 TTS API를 테스트 해본것.
Naver 구현예제가 Golang 은 없는데 일단 구현해보고 문제 입력 -> 자동으로 mp3 생성 후 재생
-> 보기 생성 후 재생 하여 문제 풀기 순으로 구현해봐야겠다.
Discuss about post