jQuery Text-to-Speech 谷歌在线语音
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>jQuery Text-to-Speech 谷歌在线语音</title>
<script type='text/javascript' src='jquery-1.9.1.min.js'></script>
<script type="text/javascript">
function html5_audio(){
var a = document.createElement('audio');
return !!(a.canPlayType && a.canPlayType('audio/mpeg;').replace(/no/, ''));
} var play_html5_audio = false;
if(html5_audio()) play_html5_audio = true; function play_sound(url){
if(play_html5_audio){
var snd = new Audio(url);
snd.load();
snd.play();
}else{
$("#sound").remove();
var sound = $("<embed id='sound' type='audio/mpeg' />");
sound.attr('src', url);
sound.attr('loop', false);
sound.attr('hidden', true);
sound.attr('autostart', true);
$('body').append(sound);
}
}
function readme(txt){
play_sound("http://translate.google.com/translate_tts?ie=UTF-8&q="+encodeURIComponent(txt)+"&tl=zh-cn&total=1&idx=0prev=input"); //英文 en //中文
}
readme('hello world');
$(function(){
$('#btnread').click(function(){
readme($('#inp').val());
});
});
</script>
</head> <body>
<input type="text" id="inp" value="涂聚文"/> <input type="button" id="btnread" value="Klick me"/>
</body> </html>
http://code.google.com/p/jqtts/source/checkout
/*!
jQuery Text-to-Speech plugin
--------------------------------------------
http://code.google.com/p/jqtts/ Copyright (c) 2010, Kevin Hoang Le. All rights reserved.
Code provided under the MIT License:
http://www.opensource.org/licenses/mit-license.html v0.1
*/ (function($) {
$.fn.extend({
jtts: function(options) {
var defaults = {
lang: 'en',
msPerWord: 900
}; var options = $.extend(defaults, options);
//passed-in
var sentences = [];
var lang;
var msPerWord;
var elem;
//internal
var plugin;
var ttsUrl = 'http://translate.google.com/translate_tts';
var inProgress = false;
var currentPlaying = 0;
var total = 0;
var isIE;
var jPlayer = null; var talkNonIE = function() {
var url = ttsUrl + '?tl=' + lang + '&q=' + sentences[currentPlaying++];
jPlayer.jPlayer('setFile', url).jPlayer('play').jPlayer('onSoundComplete', onSoundComplete);
}; var talkIE = function() {
if (currentPlaying < total) {
var re = /\w+/g;
var words = sentences[currentPlaying].match(re); var url = ttsUrl + '?tl=' + lang + '&q=' + sentences[currentPlaying++];
setTimeout(talkIE, words.length * msPerWord); if (jPlayer != null) {
jPlayer.remove();
} jPlayer = $('<embed>', {src: url, hidden: true}).appendTo($(elem));
} else {
inProgress = false;
plugin.trigger('onComplete', []);
}
}; var onSoundComplete = function() {
if (currentPlaying < total) {
talkNonIE();
} else {
inProgress = false;
plugin.trigger('onComplete', []);
}
}; return this.each(function() {
plugin = $(this);
elem = $(options.elem); if ($.browser.msie) {
isIE = true;
} else {
isIE = false;
jPlayer = $(elem);
jPlayer.jPlayer(options.jPlayer);
} lang = options.lang;
msPerWord = options.msPerWord;
}).bind('playing', function(e, lines) {
currentPlaying = 0;
sentences = lines;
total = sentences.length;
if (isIE) {
talkIE();
} else {
talkNonIE();
}
}).bind('pause', function() {
}).bind('stop', function() {
}).bind('resume', function() {
});
},
play: function(sentences) {
return this.trigger('playing', [sentences]);
},
pause: function() {
return this.trigger('pause');
},
abort: function() {
return this.trigger('abort');
},
resume: function() {
return this.trigger('resume');
}
});
})(jQuery);
jQuery Text-to-Speech 谷歌在线语音的更多相关文章
- 必应语音API(Bing text to speech API)
前言 Link : Microsoft Speech API overview 通过这个链接,大致了解Bing speech API的语音识别和语音合成两部分, 这次是需要用到TTS,所以就直接看TT ...
- xe5 android tts(Text To Speech)
xe5 android tts(Text To Speech) TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转 ...
- delphi xe5 android tts(Text To Speech)
TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转语音的方法 和访问蓝牙一样,这里用javaclass的接口实现 接 ...
- xe5 android tts(Text To Speech) [转]
TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转语音的方法 和访问蓝牙一样,这里用javaclass的接口实现 接 ...
- python解析谷歌在线表格链接,转化为数组形式,图片转化为链接
在线表格已成为趋势,传统的表格导入导出已经不能满足现在企业的发展. 必须支持在线表格的导入,只需要输入在线表格的链接,就能将数据读取出来. 而且相比相传表格,能够将图片信息一块读取.在线表格中的图片也 ...
- 第二篇:TTS(Text To Speech)语音合成
TTS(Text To Speech)语音合成: 百度AI语音合成SDK文档--python SDK: https://ai.baidu.com/docs#/TTS-Online-Python-SDK ...
- jquery text选择器 语法
jquery text选择器 语法 作用::text 选择器选取类型为 text 的 <input> 元素.大理石平台检定规程 语法:$(":text") jquery ...
- C# ms speech文字转语音例子
最近突发奇想 想玩玩 文字转语音的东东 谷歌了一下 发现微软有一个TTS 的SDK 查了查相关资料 发现 还真不错 然后就开始玩玩Microsoft Speech SDK的 DEMO了 ...
- csharp:Google TTS API text to speech
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
随机推荐
- 使用bluebird解决promise兼容性问题
//引入promiseif(!Promise){ var Promise = require("bluebird"); // Configure Promise.config({ ...
- Python环境安装与升级
Python是跨平台的,它可以运行在Windows,Mac,Linux/Unix系统上,在Windows上写的Python程序,在Linux上也是能够运行的.目前,Python有两个大版本,一个是2. ...
- P4383 [八省联考2018]林克卡特树lct 树形DP+凸优化/带权二分
$ \color{#0066ff}{ 题目描述 }$ 小L 最近沉迷于塞尔达传说:荒野之息(The Legend of Zelda: Breath of The Wild)无法自拔,他尤其喜欢游戏中的 ...
- 2016级算法第二次上机-E.AlvinZH的儿时梦想——运动员篇
862-AlvinZH的儿时梦想--运动员篇 思路 难题. 应该想到,不管给出的数据如何,每一个淘汰的人不会对最终答案产生任何影响,所以每次淘汰就把人除掉就可以了,最后剩下的两个人计算它们从开始到相遇 ...
- 2016级算法第一次练习赛-F.AlvinZH的儿时梦想——机器人篇
864 AlvinZH的儿时梦想----机器人篇 题目链接:https://buaacoding.cn/problem/868/index 思路 中等题. 判断无限玩耍: \(p\) 的值能够承担的起 ...
- Log中关于start meeting在zVideoApp和zVideoUI中的流程可以搜索的几个字符串
[31356:36164:04-29/17:53:38.164:INFO:SBConfUI.cpp(940)] CSBConfUI::OnConfStatusChanged(CONF_STATUS) ...
- 使用范围for语句处理多维数组
在C++11新标准中新增了范围for语句,所以遍历多维数组可以用如下形式: int num[rowCnt][colCnt]; for(auto &row : num){ for(auto &a ...
- 红米手机3S 3X简单卡刷开发版获得ROOT权限的方法
小米的机器不同手机型号一般小米论坛都提供两个不同的系统,即分别是稳定版和开发版,稳定版没有提供root权限管理,开发版中就支持了root权限,很多情况下我们需要使用的一些功能强大的APP,都需要在ro ...
- appium解决无法通过name属性识别元素org.openqa.selenium.InvalidSelectorException: Locator Strategy 'name' is not supported for this session
执行代码.: public AndroidDriver<AndroidElement> appiumDriver; appiumDriver.findElement(By.name(&qu ...
- 安装notepad++之后鼠标右键无Edit with notepad++
在鼠标右键上加入使用notepad++编辑 最近发现一个问题在安装完notepad++文本编辑器之后,在一个文本文件上右键有时候并没有出现“使用notepad++编辑的选项”,不用着急可以通过简单地修 ...