簡體   English   中英

語音合成-如何改變性別?

[英]speech synthesis - How to change gender?

我創建了一個使用window.speechSynthesis的簡單的文本到語音Web應用程序,並且運行良好。 我想添加一種功能,可以在女性中設置某些文本,在男性語音中設置其他文本。

  1. 看來,如果我從網絡語音API使用getVoices(),則列表因瀏覽器而異。 似乎沒有“性別”屬性。 某些Chrome名稱中有“ Male”字樣,而有些則沒有。 有些有女性名字和男性名字。 Google chrome似乎沒有列出美國男性。 我想念什么嗎?

  2. 如果我知道所有名稱可能是什么,那么我可以存儲列表,然后遍歷列表,直到找到可以使用的名稱。 有沒有辦法知道該設備上是否已啟用語音?

  3. 或者,是否可以通過我的應用下載在所有瀏覽器中都可以使用的男性和女性聲音?

我需要在所有設備上使用它。

如果您是我,則將創建一個所需語音名稱(男性和女性)的數組,然后遍歷getVoices數組以查找匹配項。 例如:

 window.speechSynthesis.onvoiceschanged = () => { const maleVoices = [ 'Google US English Male', 'Microsoft David Desktop - English (United States)', ]; const foundVoice = speechSynthesis.getVoices() .find(({ name }) => maleVoices.includes(name)); console.log('speaking'); speechSynthesis.cancel(); // sometimes needed due to Chrome's buggy implementation const utter = new SpeechSynthesisUtterance('foo bar'); if (foundVoice) utter.voice = foundVoice; else console.log('no voice found, using default'); speechSynthesis.speak(utter); }; 

可用的聲音由瀏覽器和用戶的計算機確定; 如果用戶沒有所需的聲音,則無法通過Javascript下載其他聲音。

我的Google Chrome 66確實具有'Google US English Male''Microsoft David Desktop - English (United States)'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM