Web Speech APIでWebサイトをヨドバシカメラにする

Google Chrome 33以降またはSafari 7.0でアクセスすると、店内アナウンスが流れる。

var chineses = [
    "亲爱的顾客朋友,你们好。",
    "衷心欢迎您光临友都八喜。",
    "友都八喜是日本著名的大型购物中心。",
    "精明商品将近一百万种,数码相机、摄像机、名牌手表、化妆品、电子游戏、名牌箱包等应有尽有。",
    "最新的款式、最优惠的价格、最优质的服务。",
    "不懂日文、英文的顾客朋友们,请不必担心。",
    "友都八喜有会讲中文的工作人员,请您一对待中文导购优质的店员联系,他们将用中文为您热情服务。",
    "在服务台我们还会您准备了中文导购手册,敬请临时使用。",
    "友都八喜商品齐全、价格低廉,在这里您可以放心选购日本商品以及各种对应中国电源和制式的电器产品。",
    "无论是您还是馈赠亲友,友都八喜都是您的最佳选择。",
    "友都八喜欢迎使用银联卡,使用银联卡购物有优惠。",
    "凡是在本店购物的中国顾客,持护照可以享受5%的商品免税,使用中国银联卡还可以享受到5%的购物打折。",
    "总共得10%的优惠,使用银联卡方便又实惠。",
    "持护照在友都八喜购物的顾客们可在本店统一办理退税手续,敬请咨询各柜台店员,他们将为您提供周到的服务。",
    "友都八喜大厦顶层还是有餐饮街休息,让您感到购物疲劳时可以到餐饮街休息就餐,这里有中餐、日餐、西点、咖啡厅、各类餐饮品种丰富,休闲环境舒适。",
    "亲爱的顾客朋友,衷心感谢您光临友都八喜,祝您购物愉快,友都八喜全体人工欢迎您再次光临,谢谢。",
];

if (typeof(SpeechSynthesisUtterance) === "undefined") {
    alert("Your browser does not support Speech Synthesis API:\n" + navigator.userAgent);
}
    
var u = new SpeechSynthesisUtterance();
u.text = "Welcome to Yodobashi Camera.";
u.lang = "en-US";
u.onend = function(){
    // workaround for duplicate speech on Google Chrome 35.0.1916.153 (Windows)
    setTimeout(function(){
        u.lang = "zh-CN";
        var text = chineses.shift();
        if (text) {
            u.text = text;
            speechSynthesis.speak(u);
        }
    }, 0);
};
speechSynthesis.speak(u);

Google Chrome 35の場合、setTimeoutを挟まないと同じ文章が2回再生されたり、挟んでも途中でonendイベントが上がってこないことがあったりと、いまいち挙動によくわからないところがある。

関連リンク