關於HTML5語音Web Speech

2021-09-21 01:55:03 字數 1485 閱讀 6771

公司用了挺久的,簡單記下。百分之九十拷貝,百分之十小辣雞屬於自己,就標原創,嘿嘿。

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);

沒錯,只需要這麼一點**就足夠了,大家可以在自己瀏覽器的控制台裡面執行上面兩行**,看看有沒有讀出聲音。

上面**出現了兩個長長的物件,speechsynthesisutterancespeechsynthesis,就是語音合成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 中國對測試打發撒旦發射點阿斯頓髮順豐...