반응형
네이버 TTS (Text-To-Speech)
CLOVA Voice
: 음성으로 변환할 텍스트, 음색, 속도 등을 파라미터로 입력받아 음성을 합성하여 그 결과를 반환하는 HTTP 기반의 REST API.
네이버 콘솔 어플리케이션에서 이용할 서비스로 CLOVA Voice를 추가해준다.
월 90,000원이라는 무서운 경고가 있지만 제공받은 무료 크레딧으로 차감이 가능하다.
예전에는 CLOVA Speech Synthesis (CSS) 를 사용하여 tts를 한 것 같던데 지금은 신규 사용이 불가한 듯 하다.
처음에 이걸로 해보려다가 아무리 해도 statusCode 403 뜨길래 결국 다시 CLOVA Voice로 했더니 잘된다.. ㅠ
다른 프로젝트들은 예제라도 있었는데, CLOVA Voice tts는 따로 swift용 예제를 제공해주지는 않는 것 같다.
그냥 api 알아서 태우고 mp3 파일 재생을 해줘야 함 ㅋㅋㅋ
import UIKit
import Alamofire
import AVFoundation
class NaverTTSViewController: UIViewController {
let URL = "https://naveropenapi.apigw.ntruss.com/tts-premium/v1/tts"
var audio: AVAudioPlayer?
let headers: HTTPHeaders = [
"Content-Type":"application/x-www-form-urlencoded",
"X-NCP-APIGW-API-KEY-ID":{CLIENT_ID},
"X-NCP-APIGW-API-KEY":{CLIENT_SECRET}
]
let params:[String:Any] = [
"speaker" : "mijin",
"speed" : 0,
"text" : "안녕"
]
var player = AVPlayer()
override func viewDidLoad() {
super.viewDidLoad()
textToSpeech()
}
func textToSpeech() {
AF.request(URL, method: .post, parameters: params, headers: headers).responseData { response in
switch response.result {
case .success:
guard let statusCode = response.response?.statusCode else { return }
guard let data = response.data else { return }
self.play(data: data)
break
case .failure(let error):
print(error.localizedDescription)
break
}
}
}
func play(data: Data) {
do {
audio = try AVAudioPlayer(data: data)
audio?.prepareToPlay()
audio?.play()
} catch {
print(error.localizedDescription)
}
}
}
참고 : NAVER Cloud Platform - CLOVA Voice, medium - NAVER CSS swift example,
혹시나 제 글이 도움이 되셨다면 하트 한번 눌러주시면 감사하겠습니다 🥰
iOS 개발자분들 모두 화이팅입니다👍🏻
728x90
반응형
'초보 iOS 개발자의 일상 > 개발 업무' 카테고리의 다른 글
[Swift iOS] OpenCV 흑백변환 (0) | 2022.01.11 |
---|---|
iOS 앱내구입 InAppPurchase 테스트 - Sandbox, Testflight (0) | 2022.01.03 |
[Swift iOS] Naver CLOVA Speech Recognition(CSR API) 음성인식 (0) | 2021.12.29 |
[Swift iOS] Google Cloud Speech-to-Text API (한글 음성 인식) (1) | 2021.12.27 |
[Swift iOS] Google Cloud Text-to-Speech API (한글 음성 변환) (0) | 2021.12.24 |