公司用了挺久的,簡單記下。百分之九十拷貝,百分之十小辣雞屬於自己,就標原創,嘿嘿。
html5中和web speech相關的api實際上有兩類,一類是「語音識別(speech recognition)」,另外乙個就是「語音合成(speech synthesis)」
我公司業務主要用的是語音合成這個類,這玩意就是把要讀的內容拼接成html,然後speak就ok了。
// 全域性語音控制項**很簡單,,嗯,就搞定了var player = window.speechsynthesis;
// 需要講的話
var speckthis = new speechsynthesisutterance();
出處:先從最簡單的例子說起,如果想讓瀏覽器讀出「你好,世界!」的聲音,可以下面的js**:
var utterthis = new window.speechsynthesisutterance('你好,世界!');
window.speechsynthesis.speak(utterthis);
沒錯,只需要這麼一點**就足夠了,大家可以在自己瀏覽器的控制台裡面執行上面兩行**,看看有沒有讀出聲音。
上面**出現了兩個長長的物件,speechsynthesisutterance
和speechsynthesis
,就是語音合成speech synthesis api的核心。
首先是speechsynthesisutterance
物件,主要用來構建語音合成例項,例如上面**中的例項物件utterthis
。我們可以直接在構建的時候就把要讀的文字內容寫進去:
var utterthis = new window.speechsynthesisutterance('你好,世界!');
又或者是使用例項物件的一些屬性,包括:
因此上面的**也可以寫作:
var utterthis = new window.speechsynthesisutterance();
utterthis.text = '你好,世界!';
不僅如此,該例項物件還暴露了一些方法:
接下來是speechsynthesis
物件,主要作用是觸發行為,例如讀,停,還原等:
除了瀏覽器相容問題,遇到的問題就是讀取數字時,若數字是6位之內,他就讀幾萬幾千啥的。。很智慧型但業務衝突了就很煩
解決起來也很簡單,給待讀字串拼接空格就解決了,親測有效。
//獲取相關字串var strelectrontaxno = row.electrontaxno.tostring();
//分割並字元間都加上空格
var strelectrontaxnosplit = strelectrontaxno.split("").join(" ");
關於HTML5 語音搜尋的問題
以前語音輸入功能雖然沒用過,但是看上去很高階的樣子,有了智慧型手機之後,在ios和android中的語音輸入,特別是iphone的siri,讓一切變得如此簡單,嘎嘎。當然我不是在這裡要實現如此強悍的功能,只是說說html5中的語音輸入功能speech屬性,大家先可以看看w3c文件 看上去很強大的樣子...
四 Html5 語音識別
html5 實現語音識別so easy 一般的文字框 語音識別文字框 ok 就是這麼簡單!其他引數 1 lang 強制輸入框裡的語言種類 text x webkit speech lang zh cn 2 x webkit grammar 語音輸入語法,builtin search 值使得語音輸入的...
前端HTML5語音播報
獲取html本地videothis.localaudio window.speechsynthesis 宣告語音播報this.audioservice new speechsynthesisutterance 語音提示this.audioservice.text 中國對測試打發撒旦發射點阿斯頓髮順豐...