質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1658閲覧

bing ttsの使い方

NishidaRyu416_

総合スコア113

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/03/31 13:33

Uncaught TypeError: Cannot read property 'Synthesize' of undefined at hello.html:4
こういうエラーが出て、TTSを利用できません。
エラーの対処法回答よろしくお願いします。

html

1<script> 2var tts; 3tts.Synthesize(); 4 5var request = require('request'), 6 xmlbuilder = require('xmlbuilder'), 7 wav = require('wav'), 8 Speaker = require('speaker'); 9 10exports.Synthesize = function Synthesize(){ 11 12 // Note: The way to get api key: 13 // Free: https://www.microsoft.com/cognitive-services/en-us/subscriptions?productId=/products/Bing.Speech.Preview 14 // Paid: https://portal.azure.com/#create/Microsoft.CognitiveServices/apitype/Bing.Speech/pricingtier/S0 15 var apiKey = "キー入力済み"; 16 var ssml_doc = xmlbuilder.create('speak') 17 .att('version', '1.0') 18 .att('xml:lang', 'en-us') 19 .ele('voice') 20 .att('xml:lang', 'en-us') 21 .att('xml:gender', 'Female') 22 .att('name', 'Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)') 23 .txt('This is a demo to call Microsoft text to speech service.') 24 .end(); 25 var post_speak_data = ssml_doc.toString(); 26 27 request.post({ 28 url: 'https://api.cognitive.microsoft.com/sts/v1.0/issueToken', 29 headers: { 30 'Ocp-Apim-Subscription-Key' : apiKey 31 } 32 }, function (err, resp, access_token) { 33 if (err || resp.statusCode != 200) { 34 console.log(err, resp.body); 35 } else { 36 try { 37 request.post({ 38 url: 'https://speech.platform.bing.com/synthesize', 39 body: post_speak_data, 40 headers: { 41 'content-type' : 'application/ssml+xml', 42 'X-Microsoft-OutputFormat' : 'riff-16khz-16bit-mono-pcm', 43 'Authorization': 'Bearer ' + access_token, 44 'X-Search-AppId': '07D3234E49CE426DAA29772419F436CA', 45 'X-Search-ClientID': '1ECFAE91408841A480F00935DC390960', 46 'User-Agent': 'TTSNodeJS' 47 }, 48 encoding: null 49 }, function (err, resp, speak_data) { 50 if (err || resp.statusCode != 200) { 51 console.log(err, resp.body); 52 } else { 53 try { 54 var reader = new wav.Reader(); 55 reader.on('format', function (format) { 56 reader.pipe(new Speaker(format)); 57 }); 58 var Readable = require('stream').Readable; 59 var s = new Readable; 60 s.push(speak_data); 61 s.push(null); 62 s.pipe(reader); 63 } catch (e) { 64 console.log(e.message); 65 } 66 } 67 }); 68 } catch (e) { 69 console.log(e.message); 70 } 71 } 72 }); 73}; 74</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Node.js は不勉強なので解決案ではないですが、下記コードは未定義の変数から関数Synthesize を呼ぼうとしているのでエラーが出ています。

JavaScript

1var tts; 2tts.Synthesize(); // 定義されていない変数にはSynthesizeという関数は無い

参考にされたページ(がありますよね?)を丁寧に読み込んでみてください。

投稿2017/03/31 14:45

編集2017/03/31 14:45
kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問