CLOVA Voice examples
- Print
- PDF
CLOVA Voice examples
- Print
- PDF
Article summary
Did you find this summary helpful?
Thank you for your feedback
Available in Classic and VPC
This document introduces examples of using the CLOVA Voice TTS (Premium) API.
CLOVA Voice TTS (Premium)
This section describes examples of the CLOVA Voice API that synthesizes speech from text to be converted and parameters such as tone, speed, and emotion.
Java
The following is a Java-based sample code for the CLOVA Voice API.
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Date;
public class APIExamTTS {
public static void main(String[] args) {
String clientId = "YOUR_CLIENT_ID";//Application's client ID value";
String clientSecret = "YOUR_CLIENT_SECRET";//Application's client secret value";
try {
String text = URLEncoder.encode("Nice to meet you.", "UTF-8"); // 13 characters
String apiURL = "https://naveropenapi.apigw.ntruss.com/tts-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=nara&volume=0&speed=0&pitch=0&format=mp3&text=" + text;
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(postParams);
wr.flush();
wr.close();
int responseCode = con.getResponseCode();
BufferedReader br;
if(responseCode==200) { // Successful call
InputStream is = con.getInputStream();
int read = 0;
byte[] bytes = new byte[1024];
// Create an MP3 file with a random name
String tempname = Long.valueOf(new Date().getTime()).toString();
File f = new File(tempname + ".mp3");
f.createNewFile();
OutputStream outputStream = new FileOutputStream(f);
while ((read =is.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
is.close();
} else { // Error occurred
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);
}
}
}
Python
The following is a Python-based sample code for the CLOVA Voice API.
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
encText = urllib.parse.quote("Nice to meet you, NAVER.")
data = "speaker=nara&volume=0&speed=0&pitch=0&format=mp3&text=" + encText;
url = "https://naveropenapi.apigw.ntruss.com/tts-premium/v1/tts"
request = urllib.request.Request(url)
request.add_header("X-NCP-APIGW-API-KEY-ID",client_id)
request.add_header("X-NCP-APIGW-API-KEY",client_secret)
response = urllib.request.urlopen(request, data=data.encode('utf-8'))
rescode = response.getcode()
if(rescode==200):
print("Save TTS MP3")
response_body = response.read()
with open('1111.mp3', 'wb') as f:
f.write(response_body)
else:
print("Error Code:" + rescode)
import os
import sys
import urllib
import urllib2
reload(sys)
sys.setdefaultencoding('utf-8')
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
text = unicode("Nice to meet you, NAVER.")
speaker = "nara"
speed = "0"
volume = "0"
pitch = "0"
fmt = "mp3"
val = {
"speaker": speaker,
"volume": volume,
"speed":speed,
"pitch": pitch,
"text":text,
"format": fmt
}
data = urllib.urlencode(val)
url = "https://naveropenapi.apigw.ntruss.com/tts-premium/v1/tts"
headers = {
"X-NCP-APIGW-API-KEY-ID" : client_id,
"X-NCP-APIGW-API-KEY" : client_secret
}
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
rescode = response.getcode()
if(rescode==200):
print("TTS mp3 save")
response_body = response.read()
with open('1111.mp3', 'wb') as f:
f.write(response_body)
else:
print("Error Code:" + rescode)
PHP
The following is a PHP-based sample code for the CLOVA Voice API.
<?php
$client_id = "YOUR_CLIENT_ID";
$client_secret = "YOUR_CLIENT_SECRET";
$encText = urlencode("Nice to meet you.");
$postvars = "speaker=nara&volume=0&speed=0&pitch=0&format=mp3&text=".$encText;
$url = "https://naveropenapi.apigw.ntruss.com/tts-premium/v1/tts";
$is_post = true;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $postvars);
$headers = array();
$headers[] = "X-NCP-APIGW-API-KEY-ID: ".$client_id;
$headers[] = "X-NCP-APIGW-API-KEY: ".$client_secret;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "status_code:".$status_code."<br />";
curl_close ($ch);
if($status_code == 200) {
//echo $response;
$fp = fopen("tts.mp3", "w+");
fwrite($fp, $response);
fclose($fp);
echo "<a href='tts.mp3'>Play TTS</a>";
} else {
echo "Error content:".$response;
}
?>
JavaScript
The following is a JavaScript-based sample code for the CLOVA Voice API.
var express = require('express');
var app = express();
var client_id = 'YOUR_CLIENT_ID';
var client_secret = 'YOUR_CLIENT_SECRET';
var fs = require('fs');
app.get('/tts', function(req, res) {
var api_url = 'https://naveropenapi.apigw.ntruss.com/tts-premium/v1/tts';
var request = require('request');
var options = {
url: api_url,
form: { speaker: 'nara', volume: '0', speed: '0', pitch: '0', text: 'Have a nice day', format: 'mp3' },
headers: { 'X-NCP-APIGW-API-KEY-ID': client_id, 'X-NCP-APIGW-API-KEY': client_secret },
};
var writeStream = fs.createWriteStream('./tts1.mp3');
var _req = request.post(options).on('response', function(response) {
console.log(response.statusCode); // 200
console.log(response.headers['content-type']);
});
_req.pipe(writeStream); // Output to file
_req.pipe(res); // Output to browser
});
app.listen(3000, function() {
console.log('http://127.0.0.1:3000/tts app listening on port 3000!');
});
C#
The following is a C#-based sample code for the CLOVA Voice API.
using System;
using System.Net;
using System.Text;
using System.IO;
namespace NaverAPI_Guide
{
public class APIExamTTS
{
static void Main(string[] args)
{
string text = "Have a nice day."; // Text value to speech synthesize
string url = "https://naveropenapi.apigw.ntruss.com/tts-premium/v1/tts";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.Add("X-NCP-APIGW-API-KEY-ID", "YOUR-CLIENT-ID");
request.Headers.Add("X-NCP-APIGW-API-KEY", "YOUR-CLIENT-SECRET");
request.Method = "POST";
byte[] byteDataParams = Encoding.UTF8.GetBytes("speaker=nara&volume=0&speed=0&pitch=0&format=mp3&text=" + text);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteDataParams.Length;
Stream st = request.GetRequestStream();
st.Write(byteDataParams, 0, byteDataParams.Length);
st.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string status = response.StatusCode.ToString();
Console.WriteLine("status="+ status);
using (Stream output = File.OpenWrite("c:/tts.mp3"))
using (Stream input = response.GetResponseStream())
{
input.CopyTo(output);
}
Console.WriteLine("c:/tts.mp3 was created");
}
}
}
Was this article helpful?