更新记录

1.0.6(2024-01-19)

启用扬声器

1.0.5(2024-01-19)

增加切换到扬声器

1.0.4(2024-01-14)

ios回调问题

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
Android:5.0,iOS:11 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

sm-ms-speech

开发文档

UTS 语法 UTS API插件 UTS 组件插件 Hello UTS

插件使用流程:

  • 试用插件,选择该插件绑定的项目,导入插件到指定项目。
  • 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  • 打包自定义基座,得到自定义基座,进行log输出测试。
  • 开发完毕后,测试没问题,可购买插件,云打包。
  • UTS插件目前不支持离线打包。

微软原生语音合成插件,文本转语音,支持SSML

sm-ms-speech简介

文本转语音可让应用程序、工具或设备将文本转换为类似于人类的合成语音。 文本转语音功能也称为语音合成。 使用现成的类似于人类的预生成神经网络声音,或根据你的产品或品牌创建独特的神经网络定制声音。 有关支持的声音、语言和区域设置的完整列表,请参阅语音服务的语言和声音支持

核心功能

文本转语音包括以下功能:

功能 总结
预生成的神经网络声音(在定价页面中称为“神经网络”) 高度自然的现成语音。
自定义神经语音(在定价页面中称为“自定义神经”) 易于使用的自助服务,可创建自然的品牌语音并限制访问,使用户以负责的态度使用。

有建议和定制需要,请联系QQ:592121306

插件使用

script 中引入组件

    import * as MSSpeech from "@/uni_modules/sm-ms-speech"

初始化

MSSpeech.initSpeech({
                speechKey: "",
                speechRegion: ""
            });

开始播放,可配置一些基础参数

详细参数设置请参考:https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/speech-synthesis-markup-voice

MSSpeech.speakCustom({
    content : string   //待播放的文本
    language : string | null   //语言,如zh-CN
    voiceName : string | null  //发音人 ,如  zh-CN-XiaoxiaoNeural
    style : string | null   //讲话风格,如angry,sad
    role : string | null        //角色,如Girl,Boy,SeniorMale
    pitch : string | null       //音调
    rate : string | null        //速率
    volume : string | null  //声音
});

语音和发音人参考:

https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/language-support?tabs=tts

下表介绍了每个受支持的 style 属性:

Style 说明
style="advertisement_upbeat" 用兴奋和精力充沛的语气推广产品或服务。
style="affectionate" 以较高的音调和音量表达温暖而亲切的语气。 说话者处于吸引听众注意力的状态。 说话者的个性往往是讨喜的。
style="angry" 表达生气和厌恶的语气。
style="assistant" 数字助理用的是热情而轻松的语气。
style="calm" 以沉着冷静的态度说话。 语气、音调和韵律与其他语音类型相比要统一得多。
style="chat" 表达轻松随意的语气。
style="cheerful" 表达积极愉快的语气。
style="customerservice" 以友好热情的语气为客户提供支持。
style="depressed" 调低音调和音量来表达忧郁、沮丧的语气。
style="disgruntled" 表达轻蔑和抱怨的语气。 这种情绪的语音表现出不悦和蔑视。
style="documentary-narration" 用一种轻松、感兴趣和信息丰富的风格讲述纪录片,适合配音纪录片、专家评论和类似内容。
style="embarrassed" 在说话者感到不舒适时表达不确定、犹豫的语气。
style="empathetic" 表达关心和理解。
style="envious" 当你渴望别人拥有的东西时,表达一种钦佩的语气。
style="excited" 表达乐观和充满希望的语气。 似乎发生了一些美好的事情,说话人对此满意。
style="fearful" 以较高的音调、较高的音量和较快的语速来表达恐惧、紧张的语气。 说话人处于紧张和不安的状态。
style="friendly" 表达一种愉快、怡人且温暖的语气。 听起来很真诚且满怀关切。
style="gentle" 以较低的音调和音量表达温和、礼貌和愉快的语气。
style="hopeful" 表达一种温暖且渴望的语气。 听起来像是会有好事发生在说话人身上。
style="lyrical" 以优美又带感伤的方式表达情感。
style="narration-professional" 以专业、客观的语气朗读内容。
style="narration-relaxed" 为内容阅读表达一种舒缓而悦耳的语气。
style="newscast" 以正式专业的语气叙述新闻。
style="newscast-casual" 以通用、随意的语气发布一般新闻。
style="newscast-formal" 以正式、自信和权威的语气发布新闻。
style="poetry-reading" 在读诗时表达出带情感和节奏的语气。
style="sad" 表达悲伤语气。
style="serious" 表达严肃和命令的语气。 说话者的声音通常比较僵硬,节奏也不那么轻松。
style="shouting" 表达一种听起来好像声音在远处或在另一个地方的语气,努力让别人听清楚。
style="sports_commentary" 表达一种既轻松又感兴趣的语气,用于播报体育赛事。
style="sports_commentary_excited" 用快速且充满活力的语气播报体育赛事精彩瞬间。
style="whispering" 表达一种柔和的语气,试图发出安静而柔和的声音。
style="terrified" 表达一种害怕的语气,语速快且声音颤抖。 听起来说话人处于不稳定的疯狂状态。
style="unfriendly" 表达一种冷淡无情的语气。
角色 说明
role="Girl" 声音模仿女孩。
role="Boy" 声音模仿男孩。
role="YoungAdultFemale" 声音模仿年轻的成年女性。
role="YoungAdultMale" 声音模仿年轻的成年男性。
role="OlderAdultFemale" 声音模仿年长的成年女性。
role="OlderAdultMale" 声音模仿年长的成年男性。
role="SeniorFemale" 声音模仿年老女性。
role="SeniorMale" 声音模仿年老男性。
属性 说明 必需还是可选
pitch 指示文本的基线音节。 可在句子层面应用音节的变化。 音调变化应为原始音频的 0.5 到 1.5 倍。 可将音调表述为:绝对值:以某个数字后接“Hz”(赫兹)表示。 例如 <prosody pitch="600Hz">some text</prosody>。相对值:以相对数字表示:以前面带有“+”或“-”且后接“Hz”或“st”(用于指定音节的变化量)的数字表示。 例如 <prosody pitch="+80Hz">some text</prosody><prosody pitch="-2st">some text</prosody>。 “st”表示变化单位为半音,即,标准全音阶中的半调(半步)。以百分比表示:以“+”(可选)或“-”开头且后跟“%”的数字表示,指示相对变化。 例如 <prosody pitch="50%">some text</prosody><prosody pitch="-50%">some text</prosody>。常量值:x-lowlow中highx-highdefault 可选
rate 指示文本的讲出速率。 可在字词或句子层面应用语速。 速率变化应为原始音频的 0.52 倍。 可将 rate 表述为:相对值:以相对数字表示:以充当默认值乘数的数字表示。 例如,如果值为 1,则原始速率不会变化。 如果值为 0.5,则速率为原始速率的一半。 如果值为 2,则速率为原始速率的 2 倍。以百分比表示:以“+”(可选)或“-”开头且后跟“%”的数字表示,指示相对变化。 例如 <prosody rate="50%">some text</prosody><prosody rate="-50%">some text</prosody>。常量值:x-slowslow中fastx-fastdefault 可选
volume 指示语音的音量级别。 可在句子层面应用音量的变化。 可将音量表示为:绝对值:以从 0.0100.0(从最安静到最大声,例如 75)的数字表示。 默认值为 100.0。相对值:以相对数字表示:以前面带有“+”或“-”的数字表示,指定音量的变化量。 例如 +10-5.5。以百分比表示:以“+”(可选)或“-”开头且后跟“%”的数字表示,指示相对变化。 例如 <prosody volume="50%">some text</prosody><prosody volume="+3%">some text</prosody>。常量值:silentx-softsoft中loudx-louddefault 可选

进阶用法通过SSML改进合成

详细请参考官网:https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/speech-synthesis-markup-structure

MSSpeech.speakSsml(string)

停止合成与播放

MSSpeech.stopSpeak();

设置播放回调

MSSpeech.registCallback({
                started: () => {
                    console.log("started");
                },
                completed: () => {
                    console.log("completed");
                },
                canceled: () => {
                    console.log("canceled");
                },
            });

SSML文档结构

SSML 的语音服务实现基于万维网联合会的语音合成标记语言版本 1.0。 语音服务支持的元素可能与 W3C 标准不同。

每个 SSML 文档是使用 SSML 元素(或标记)创建的。 这些元素用于调整语音、风格、音节、韵律、音量等。

下面是 SSML 文档的基本结构和语法的子集:

XML

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="string">
    <mstts:backgroundaudio src="string" volume="string" fadein="string" fadeout="string"/>
    <voice name="string" effect="string">
        <audio src="string"></audio>
        <bookmark mark="string"/>
        <break strength="string" time="string" />
        <emphasis level="value"></emphasis>
        <lang xml:lang="string"></lang>
        <lexicon uri="string"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML"></math>
        <mstts:audioduration value="string"/>
        <mstts:ttsembedding speakerProfileId="string"></mstts:ttsembedding>
        <mstts:express-as style="string" styledegree="value" role="string"></mstts:express-as>
        <mstts:silence type="string" value="string"/>
        <mstts:viseme type="string"/>
        <p></p>
        <phoneme alphabet="string" ph="string"></phoneme>
        <prosody pitch="value" contour="value" range="value" rate="value" volume="value"></prosody>
        <s></s>
        <say-as interpret-as="string" format="string" detail="string"></say-as>
        <sub alias="string"></sub>
    </voice>
</speak>

以下列表描述了每个元素中允许的一些内容示例:

  • audio:如果音频文件不可用或不可播放,可在 audio 元素的正文中包含可讲述的纯文本或 SSML 标记。 audio元素还包含文本和以下元素:audiobreakpsphonemeprosodysay-assub
  • bookmark:此元素不能包含文本或任何其他元素。
  • break:此元素不能包含文本或任何其他元素。
  • emphasis:此元素可包含文本和以下元素:audiobreakemphasislangphonemeprosodysay-assub
  • lang:此元素可包含除 mstts:backgroundaudiovoicespeak 以外的所有其他元素。
  • lexicon:此元素不能包含文本或任何其他元素。
  • math:此元素只能包含文本和 MathML 元素。
  • mstts:audioduration:此元素不能包含文本或任何其他元素。
  • mstts:backgroundaudio:此元素不能包含文本或任何其他元素。
  • mstts:embedding:此元素可包含文本和以下元素:audiobreakemphasislangphonemeprosodysay-assub
  • mstts:express-as:此元素可包含文本和以下元素:audiobreakemphasislangphonemeprosodysay-assub
  • mstts:silence:此元素不能包含文本或任何其他元素。
  • mstts:viseme:此元素不能包含文本或任何其他元素。
  • p:此元素可包含文本和以下元素:audiobreakphonemeprosodysay-assubmstts:express-ass
  • phoneme:此元素只能包含文本,不能包含任何其他元素。
  • prosody:此元素可包含文本和以下元素:audiobreakpphonemeprosodysay-assubs
  • s:此元素可包含文本和以下元素:audiobreakphonemeprosodysay-asmstts:express-assub
  • say-as:此元素只能包含文本,不能包含任何其他元素。
  • sub:此元素只能包含文本,不能包含任何其他元素。
  • speak:SSML 文档的根元素。 此元素可包含以下元素:mstts:backgroundaudiovoice
  • voice:此元素可包含除 mstts:backgroundaudiospeak 以外的所有其他元素。

语音服务可自动适当处理停顿(例如,在句号后面暂停片刻),或者在以问号结尾的句子中使用正确的音调。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问