CLOVA Voiceのユースケース
- 印刷する
- PDF
CLOVA Voiceのユースケース
- 印刷する
- PDF
記事の要約
この要約は役に立ちましたか?
ご意見ありがとうございます
Classic/VPC環境で利用できます。
CLOVA Voice TTS (Premium) APIを使用するユースケースを紹介します。
CLOVA Voice TTS (Premium)
変換対象のテキストと音色、スピード、感情などをパラメータで渡されて音声を合成する CLOVA Voice APIのユースケースを説明します。
Java
Javaベースの 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";//アプリケーションクライアント ID値";
String clientSecret = "YOUR_CLIENT_SECRET";//アプリケーションクライアントのシークレット値";
try {
String text = URLEncoder.encode("こんにちは。", "UTF-8"); // 13文字
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) { // 正常な呼び出し
InputStream is = con.getInputStream();
int read = 0;
byte[] bytes = new byte[1024];
// ランダムな名前で mp3ファイルを作成
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 { // エラー発生
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
Pythonベースの CLOVA Voice APIのサンプルコードは次の通りです。
import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
encText = urllib.parse.quote("こんにちは、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("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("こんにちは、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
PHPベースの CLOVA Voice APIのサンプルコードは次の通りです。
<?php
$client_id = "YOUR_CLIENT_ID";
$client_secret = "YOUR_CLIENT_SECRET";
$encText = urlencode("こんにちは。");
$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'>TTS再生</a>";
} else {
echo "エラー内容: ".$response;
}
?>
JavaScript
JavaScriptベースの 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: '良い一日を', 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); // fileで出力
_req.pipe(res); // ブラウザで出力
});
app.listen(3000, function() {
console.log('http://127.0.0.1:3000/tts app listening on port 3000!');
});
C#
C# ベースの 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 = "良い一日を。"; // 音声合成対象の文字列
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");
}
}
}
この記事は役に立ちましたか?