补点参数注释

This commit is contained in:
NanoRocky 2024-11-23 19:23:27 +08:00
parent d0db2f3d75
commit e229b6f2c0
2 changed files with 28 additions and 3 deletions

View File

@ -1,5 +1,6 @@
/** /**
* Decode yrc text * Decode yrc text
* Made by Pizero
* @param {string} i - yrc input * @param {string} i - yrc input
* @returns {[number,number,[[number,number],string,number,number][]]} * @returns {[number,number,[[number,number],string,number,number][]]}
*/ */

View File

@ -3,8 +3,22 @@ let audioQueue = [];
let isPlaying = false; let isPlaying = false;
let controller = null; // 用于取消请求 let controller = null; // 用于取消请求
/**
* Speech
* Made by NanoRocky
* 使用指定参数生成语音并播放音频
* 该功能原为 Azure 设计理应兼容大部分使用 post 传参的 api 请自行根据要求修改如果也使用 Azure 您可直接使用 https://github.com/NanoRocky/AzureSpeechAPI-by-PHP 完成 API 部署
* https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/speech-synthesis-markup-voice
*
* @param {string} text - 朗读的文本
* @param {string} [voice="zh-CN-YunxiaNeural"] - 音色默认为zh-CN-YunxiaNeural
* @param {string} [style="cheerful"] - 声音特定的讲话风格默认为cheerful
* @param {string} [role="Boy"] - 讲话角色扮演默认为Boy
* @param {string} [rate="1"] - 语速默认为1
* @param {string} [volume="100"] - 音量默认为100
* @returns {Promise<void>} - 一个 Promise在语音播放完成时解析或出现错误时拒绝
*/
export function Speech( export function Speech(
// 该功能原为 Azure 设计,理应兼容大部分使用 post 传参的 api 。请自行根据要求修改!
text, text,
voice = "zh-CN-YunxiaNeural", voice = "zh-CN-YunxiaNeural",
style = "cheerful", style = "cheerful",
@ -95,7 +109,9 @@ export function Speech(
}); });
} }
// 添加停止播放的函数 /**
* 停止当前播放的语音并清空播放队列
*/
export function stopSpeech() { export function stopSpeech() {
if (currentAudio) { if (currentAudio) {
currentAudio.pause(); currentAudio.pause();
@ -109,8 +125,16 @@ export function stopSpeech() {
} }
} }
/**
* SpeechLocal
* Made by NanoRocky
* 播放本地预生成的语音音频
* 考虑到生成延迟所以加了这个仅必要模块调用 api 实时生成其它模块使用预先生成好的音频记得根据需求更换自己的音频文件哇
*
* @param {string} fileName - 音频文件名 + 文件拓展名请将文件放在指定路径
* @returns {Promise<void>} - 一个 Promise在语音播放完成时解析或出现错误时拒绝
*/
export function SpeechLocal(fileName) { export function SpeechLocal(fileName) {
// 考虑到生成延迟,所以加了这个,仅必要模块调用 api 实时生成,其它模块使用预先生成好的音频。记得根据需求更换自己的音频文件哇!
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!fileName) { if (!fileName) {
reject(new Error("No file name provided")); reject(new Error("No file name provided"));