MENU
      CLOVA Voiceのユースケース

        CLOVA Voiceのユースケース


        記事の要約

        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);
                }
            }
        }
        Java

        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)
        Python
        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)
        Python

        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;
          }
        ?>
        PHP

        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!');
        });
        JavaScript

        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");
                }
            }
        }
        Plain text

        この記事は役に立ちましたか?

        Changing your password will log you out immediately. Use the new password to log back in.
        First name must have atleast 2 characters. Numbers and special characters are not allowed.
        Last name must have atleast 1 characters. Numbers and special characters are not allowed.
        Enter a valid email
        Enter a valid password
        Your profile has been successfully updated.