ã¯ããã«
SimSimi ã¨ã¯å··ã§åã®åããã£ããããããã§ãã
ä¾

ã§ããã® SimSimi ããã§ãããAPI ãå
¬éãã¦ãã¾ãã
ç¡æã§ã¯ä½¿ç¨å¶éãããããã§ 1ã¶æãã使ããªã & æ¥æ¯ã«ä½¿ããåæ°å¶éãããã¿ããã§ãããã試ãã«ç»é²ãã¦ã¿ã¾ããã
ããã使ãã°é³å£°å¯¾è©±åºæ¥ãããããªãï¼ã¨æã£ã¦ãåä½ã£ã Web Speech API で遊んでみた - 凹みTips ã®ãã¯ããã¨é³å£°å¯¾è©±ã§ãããã®ãä½ã£ã¦ã¿ã¾ããã
ãã¢
Youtube ãã¢
é³å£°ã¯ãã¯ããã§ãªããMMD Agent ã®ã¡ã¤ã¡ããã®å£°ããåããã¦ãã¾ãã
ä¸é¨ãµãã ããèªèçµæãè¿çã SimSimi API ã使ã£ããã®ã§ããé
·ãä¼è©±ã«ãªã£ã¦ã¾ãã
ãªã³ã©ã¤ã³ãã¢
Chrome ã®Î²çï¼v25ï¼ä»¥éã§ãªãã¨åããªãã®ã§ã注æãã
API å¶éçµæ§æ©ãæ¥ãã®ã§ä¼è©±ã§ããªãããããã¾ããï¼2013/03/16 æéåãã¾ããï¼ã
Web Speech API ã®è©±ã§ãããéé³ã¯ããã¼ãã¨ãã¦èªèããã¦ãã¾ããã¨ãå¤ãããã§ãã
解説
mmd.gl.enchant.js ã Web Speech API ã«ã¤ãã¦ã¯éå»ã®ã¨ã³ããªã御覧ãã ããã
å ¥åãåãåã£ã¦ããã SimSimi API ã«æ¸¡ããOpenJTalk ã§ wav ãçæããããè¿ããµã¼ãã Node.js ã§ç«ã¦ãã³ã¼ãã¯ä»¥ä¸ã®æ§ãªæãã§ãã
TTS ãµã¼ãã®ã³ã¼ãä¾
var fs = require('fs'); var http = require('http'); var querystring = require('querystring'); var OpenJTalk = require('openjtalk'); var mei1 = new OpenJTalk(); http.createServer(function(req, res) { var text = querystring.parse(req.url.slice(1)).text; if ( errCheck(text === undefined, 'Invalid parameters', res) ) return; console.log('query: ' + text); var query = { key : 'SimSImi ã®ãã¼', lc : 'ja', ft : 1.0, text: text }; http.get({ host: 'api.simsimi.com', path: '/request.p?' + querystring.stringify(query) }, function(simsimiRes) { var jsonStr = ''; simsimiRes.on('data', function(chunk) { jsonStr += chunk; }).on('end', function() { var response = JSON.parse(jsonStr).response; if (response === undefined) response = 'API å¶éãè¶ ãã¦ãããã¨ã©ã¼ã§ãã'; mei1._makeWav(response, 240, function(err, result) { if ( errCheck(err, 'Error at making wav file', res) ) return; console.log(' -->' + response); fs.readFile(result.wav, 'binary', function(err, file) { if ( errCheck(err, 'Error at reading file', res) ) return; res.writeHead(200, {'Content-Type': 'audio/wav'}); res.write(file, 'binary'); res.end(); }); }); }); }); }).listen(12000); function errCheck(err, msg, res) { if (err) { res.writeHead(400, {'Content-Type': 'text/plain'}); res.write(msg); res.end(); return true; } return false; } process.on('uncaughtException', function (err) { console.log('Error: ' + err); });
ããã§ããhttp://(ãã¹ãå):12345/text=ããã«ã¡ããã¨ãã«ã¢ã¯ã»ã¹ããã¨ãããã«ã¡ããã¨ãã wav ãé ä¿¡ãã¦ããããµã¼ããåºæ¥ã¾ããããã以ä¸ã®ã³ã¼ãã§åçããã° OK ã§ãã
wav ããã©ã¦ã¶ã§åçããã³ã¼ãä¾
var audio = new Audio(''); audio.autoplay = true; audio.src = 'http://(ãã¹ãå):12345/text=' + recogStr; audio.load(); audio.play();
Web Speech API 㨠mmd.gl.enchant.js ã¨ç¹ãã°ãã§ããé³å£°ãã£ããã§ãã3Dã¢ãã¿ã¼ã宿ãã¾ãã
ãããã«
SimSimi API é¢ç½ãã§ãããTwitter ã¨ãããå¦ç¿ãã¦ããã®ããä¼è©±èªä½ããå¦ãã§ããã®ãâ¦ã
ä¸ã®ä¸ã®æè¡ã®é²æ©ã§ã¤ãªãåãããã ãã§ç°¡åã«ãããã£ãããããä½ããããã«ãªã£ãã®ã¯ãã»ãã¨ãã«ç´ æ´ãããã§ããã
