MsEdgeTTS
1.0.0
一個簡單的Azure語音服務模塊,該模塊使用Microsoft Edge讀取API。
SSML的全部支持僅支持speak , voice和prosody元素類型。以下是默認的SSML對象:
< speak version = " 1.0 " xmlns = " http://www.w3.org/2001/10/synthesis " xmlns : mstts = " https://www.w3.org/2001/mstts "
xml : lang = " ${this._voiceLang} " >
< voice name = " ${voiceName} " >
< prosody rate = " ${rate} " pitch = " ${pitch} " volume = " ${volume} " >
${input}
</ prosody >
</ voice >
</ speak >有關SSML格式的文檔可以在此處找到。所有支持的音頻格式都可以在此處找到。
確保逃脫/消毒用戶的輸入!使用XML-Escape之類的庫。
import { MsEdgeTTS , OUTPUT_FORMAT } from "msedge-tts" ;
const tts = new MsEdgeTTS ( ) ;
await tts . setMetadata ( "en-IE-ConnorNeural" , OUTPUT_FORMAT . WEBM_24KHZ_16BIT_MONO_OPUS ) ;
const readable = tts . toStream ( "Hi, how are you?" ) ;
readable . on ( "data" , ( data ) => {
console . log ( "DATA RECEIVED" , data ) ;
// raw audio file data
} ) ;
readable . on ( "close" , ( ) => {
console . log ( "STREAM CLOSED" ) ;
} ) ; import { MsEdgeTTS , OUTPUT_FORMAT } from "msedge-tts" ;
( async ( ) => {
const tts = new MsEdgeTTS ( ) ;
await tts . setMetadata ( "en-US-AriaNeural" , OUTPUT_FORMAT . WEBM_24KHZ_16BIT_MONO_OPUS ) ;
const filePath = await tts . toFile ( "./example_audio.webm" , "Hi, how are you?" ) ;
} ) ( ) ; import { MsEdgeTTS , OUTPUT_FORMAT } from "msedge-tts" ;
( async ( ) => {
const tts = new MsEdgeTTS ( ) ;
await tts . setMetadata ( "en-US-AriaNeural" , OUTPUT_FORMAT . WEBM_24KHZ_16BIT_MONO_OPUS ) ;
const filePath = await tts . toFile ( "./example_audio.webm" , "Hi, how are you?" , { rate : 0.5 , pitch : "+200Hz" } ) ;
} ) ( ) ;使用自定義的http.agent實現,例如https-proxy-agent或socks-proxy-agent。
import { SocksProxyAgent } from 'socks-proxy-agent' ;
( async ( ) => {
const agent = new SocksProxyAgent ( "socks://your-name%40gmail.com:[email protected]" )
const tts = new MsEdgeTTS ( agent ) ;
await tts . setMetadata ( "en-US-AriaNeural" , OUTPUT_FORMAT . WEBM_24KHZ_16BIT_MONO_OPUS ) ;
const filePath = await tts . toFile ( "./example_audio.webm" , "Hi, how are you?" ) ;
} ) ( ) ; 有關完整文檔,請查看API文檔。
該圖書館僅支持承諾。