分类 about python 下的文章


import re
from bs4 import BeautifulSoup
import time
file1 = open(r'C:\朗文双解_g_1.csv', 'a',encoding='utf-8')
with open(r'C:\朗文双解ffffff.txt',encoding='utf-8') as file:
    conten = file.readlines()
    for lin in conten:
        word=re.findall(r'^.*\t', lin)[0]
        str_first1 = re.sub('<span class="cn_txt"> ', '<span class="cn_txt"> |', str(lin))

        soup = BeautifulSoup(str(str_first1), 'html.parser')
        # soup = BeautifulSoup(str(str_first1),'lxml')
        # print(soup)
        # yb=soup.findAll(name="span", attrs={"class": ("PRON")})
        en_1_g = soup.findAll(name="span", attrs={"class": ("english LDOCE_switch_lang switch_children")})
        for i in en_1_g:
            print(word,i.get_text())
            gg = str(word)+'\t'+i.get_text()+'\n'
            print(gg)
            file1.write(gg)

        en_2_g=soup.findAll(name="span", attrs={"class": ("SIGNPOST LDOCE_switch_lang LDOCE5pp_sensefold_other")})

        for ii in en_2_g:
            print(word,i.get_text())
            gg = str(word)+'\t'+ii.get_text()+'\n'
            print(gg)
            file1.write(gg)

        # en_3_g=soup.findAll(name="span", attrs={"class": ("DEF LDOCE_switch_lang switch_siblings")})
        # ff=[]
        #
        # for i2 in en_3_g:
        #     ff.append(i2.get_text())
        # print(word,ff)
        # gg = str(word) + '\t' + str(ff) + '\n'
        # file1.write(gg)

            # print(word,i.get_text())
            # gg = str(word)+'\t'+i2.get_text()+'\n'
            # print(gg)
            # file1.write(gg)

SSML 语音和声音
项目
2023/02/11
2 个参与者
本文内容
Voice 元素
讲话风格和角色
调整讲话语言
调整韵律
显示另外 5 个
使用语音合成标记语言 (SSML) 指定文本转语音的语音、语言、名称、样式和角色。 可以在单个 SSML 文档中使用多个语音。 调整重音、语速、音调和音量。 还可以使用 SSML 插入预先录制的音频,例如音效或音符。

有关如何使用 SSML 元素指定语音和声音的详细信息,请参阅以下部分。 有关 SSML 语法的详细信息,请参阅 SSML 文档结构和事件。

Voice 元素
必须在每个 SSML speak 元素中至少指定一个 voice 元素。 此元素确定用于文本转语音的语音。

可以在单个 SSML 文档中包含多个 voice 元素。 每个 voice 元素可以指定不同的语音。 还可以通过不同的设置多次使用同一语音,例如,当更改句子之间的静音持续时间时。

下表描述了 voice 元素的属性用法。

属性 说明 必需还是可选
name 用于文本转语音输出的语音。 有关受支持的预生成语音的完整列表,请参阅语言支持。 必需
语音示例
前面介绍了 voice 元素属性支持的值。

单个语音的示例
本示例使用 en-US-JennyNeural 语音。

XML

复制

<voice name="en-US-JennyNeural">
    This is the text that is spoken.
</voice>


多个语音的示例
在 speak 元素中,可为文本转语音输出指定多种语音。 这些语音可以采用不同的语言。 对于每种语音,必须将文本包装在 voice 元素中。

此示例在 en-US-JennyNeural 和 en-US-ChristopherNeural 语音之间进行交替。

XML

复制

<voice name="en-US-JennyNeural">
    Good morning!
</voice>
<voice name="en-US-ChristopherNeural">
    Good morning to you too Jenny!
</voice>


神经网络定制声音示例
若要使用自定义神经语音,请在 SSML 中将模型名称指定为语音名称。

此示例使用名为“my-custom-voice”定制声音。

XML

复制

<voice name="my-custom-voice">
    This is the text that is spoken.
</voice>


讲话风格和角色
默认情况下,神经网络声音采用中性讲话风格。 可在句子层面调整讲话风格、风格强度和角色。

备注

如声音风格和角色文档中所述,一部分神经网络声音支持风格、风格程度和角色。 若要确定每种声音支持的风格和角色,还可以使用列出声音 API 和有声内容创作 Web 应用程序。

下表描述了 mstts:express-as 元素的属性用法。

属性 说明 必需还是可选
style 声音特定的讲话风格。 可以表达快乐、同情和平静等情绪。 也可以针对不同场景(例如客户服务、新闻广播和语音助理)优化语音。 如果风格值缺失或无效,则会忽略整个 mstts:express-as 元素,服务将使用默认的中性语音。 有关神经网络定制声音风格,请参阅神经网络定制声音风格示例。 必需
styledegree 讲话风格的强度。 可以指定更强或更柔和的风格,使语音更具表现力或更柔和。 可接受值的范围为:0.01 到 2(含)。 默认值为 1,表示预定义的风格强度。 最小单位为 0.01,表示略倾向于目标风格。 值为 2 表示是默认风格强度的两倍。 如果风格程度缺失或不受声音的支持,则会忽略此属性。 可选
role 讲话角色扮演。 声音可以模仿不同的年龄和性别,但声音名称不会更改。 例如,男性语音可以提高音调和改变语调来模拟女性语音,但语音名称不会更改。 如果角色缺失或不受声音的支持,则会忽略此属性。 可选
下表描述了每个受支持的 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 属性。

角色 说明
role="Girl" 声音模仿女孩。
role="Boy" 声音模仿男孩。
role="YoungAdultFemale" 声音模仿年轻的成年女性。
role="YoungAdultMale" 声音模仿年轻的成年男性。
role="OlderAdultFemale" 声音模仿年长的成年女性。
role="OlderAdultMale" 声音模仿年长的成年男性。
role="SeniorFemale" 声音模仿年老女性。
role="SeniorMale" 声音模仿年老男性。
mstts express-as 示例
前面介绍了 mstts:express-as 元素属性支持的值。

风格和程度示例
可使用 mstts:express-as 元素来表达情感(例如愉悦、同情和冷静)。 也可以针对不同场景(例如客户服务、新闻广播和语音助理)优化语音。

以下 SSML 示例使用悲伤风格程度为“2”的 <mstts:express-as> 元素。

XML

复制
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"

   xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
<voice name="zh-CN-XiaomoNeural">
    <mstts:express-as style="sad" styledegree="2">
        快走吧,路上一定要注意安全,早去早回。
    </mstts:express-as>
</voice>


角色示例
除了调整说话风格和风格程度,还可调整 role 参数,使语音模拟不同的年龄和性别。 例如,男性语音可以提高音调和改变语调来模拟女性语音,但语音名称不会更改。

此 SSML 片段说明了如何使用 role 属性来更改 zh-CN-XiaomoNeural 的角色扮演。

XML

复制
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"

   xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="zh-CN">
<voice name="zh-CN-XiaomoNeural">
    女儿看见父亲走了进来,问道:
    <mstts:express-as role="YoungAdultFemale" style="calm">
        “您来的挺快的,怎么过来的?”
    </mstts:express-as>
    父亲放下手提包,说:
    <mstts:express-as role="OlderAdultMale" style="calm">
        “刚打车过来的,路上还挺顺畅。”
    </mstts:express-as>
</voice>


神经网络定制声音风格示例
可以训练神经网络定制声音,以便以某些预设风格讲话,例如欢快、悲伤和低语。 还可以训练神经网络定制声音以根据训练数据确定的自定义风格讲话。 若要在 SSML 中使用神经网络定制声音风格,请指定先前在 Speech Studio 中输入的风格名称。

此示例使用名为“my-custom-voice”定制声音。 定制声音使用“欢快”预设风格讲话,然后使用名为“my-custom-style”的自定义风格讲话。

XML

复制
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"

   xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="my-custom-voice">
    <mstts:express-as style="cheerful">
        That'd be just amazing!
    </mstts:express-as>
    <mstts:express-as style="my-custom-style">
        What's next?
    </mstts:express-as>
</voice>


调整讲话语言
默认情况下,所有神经网络声音都能够流利地使用自己的语言和英语,无需使用 元素。 例如,如果英语的输入文本为“I'm excited to try text to speech”并且你使用了 es-ES-ElviraNeural 语音,则该文本将用带西班牙口音的英语讲出。 对于大多数神经网络声音,当前不支持在句子或单词级别使用 元素设置特定讲话语言。

你可以使用 元素在句子级别和单词级别调整 en-US-JennyMultilingualNeural 神经网络声音的讲话语言。 en-US-JennyMultilingualNeural 神经网络声音是采用 14 种语言(例如:英语、西班牙语和中文)的多语言语音。 位于 语法和属性定义后的表中提供了受支持的语言。

下表描述了 lang 元素的属性用法。

属性 说明 必需还是可选
xml:lang 你希望神经网络声音讲述的语言。 调整神经网络声音的讲话语言时必需。 如果使用的是 lang xml:lang,则必须提供区域设置。
备注

元素与 prosody 和 break 元素不兼容。 你无法调整此元素中的停顿和韵律,如音调、调型、速率或音量。

使用此表来确定每种神经网络声音支持哪些讲话语言。 如果语音没有使用输入文本的语言讲出,则语音服务不会输出合成音频。

语音 主要区域设置和默认区域设置 辅助区域设置
en-US-JennyMultilingualNeural en-US de-DE, en-AU, en-CA, en-GB, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, zh-CN
语言示例
前面介绍了 lang 元素属性支持的值。

en-US-JennyMultilingualNeural 的主要语言是 en-US。 你必须在 speak 元素内将 en-US 指定为默认语言,无论是否在其他地方调整该语言。

此 SSML 片段演示如何使用 lang 元素(和 xml:lang 属性)以 de-DE 语言讲出 en-US-JennyMultilingualNeural 神经网络声音。

XML

复制
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"

   xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-JennyMultilingualNeural">
    <lang xml:lang="de-DE">
        Wir freuen uns auf die Zusammenarbeit mit Ihnen!
    </lang>
</voice>


在 speak 元素内,你可以为文本转语音输出指定包括 en-US 在内的多种语言。 对于每种调整后的语言,文本必须与该语言匹配并包装在 voice 元素中。 此 SSML 片段演示如何使用 将讲话语言更改为 es-MX、en-US 和 fr-FR。

XML

复制
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"

   xmlns:mstts="https://www.w3.org/2001/mstts" xml:lang="en-US">
<voice name="en-US-JennyMultilingualNeural">
    <lang xml:lang="es-MX">
        ¡Esperamos trabajar con usted!
    </lang>
    <lang xml:lang="en-US">
       We look forward to working with you!
    </lang>
    <lang xml:lang="fr-FR">
        Nous avons hâte de travailler avec vous!
    </lang>
</voice>


调整韵律
prosody 元素用于指定文本转语音输出的音节、调型、范围、速率和音量的变化。 prosody 元素可包含文本和以下元素:audio、break、p、phoneme、prosody、say-as、sub 和 s。

由于韵律属性值可在较大范围内变化,因此,语音识别器会将分配的值解释为所选语音的建议实际韵律值。 文本转语音将限制或替代不支持的值。 例如,音节 1 MHz 或音量 120 就是不支持的值。

下表描述了 prosody 元素的属性用法。

属性 说明 必需还是可选
contour 调型表示音节的变化。 这些变化以语音输出中指定时间处的目标数组形式表示。 每个目标由参数对的集定义。 例如:

每参数集中的第一个值以文本持续时间百分比的形式指定音节变化的位置。 第二个值使用音节的相对值或枚举值指定音节的升高或降低量(请参阅 pitch)。 可选
pitch 指示文本的基线音节。 可在句子层面应用音节的变化。 音调变化应为原始音频的 0.5 到 1.5 倍。 可将音调表述为:
绝对值:以某个数字后接“Hz”(赫兹)表示。 例如 some text
相对值:
以相对数字表示:以前面带有“+”或“-”且后接“Hz”或“st”(用于指定音节的变化量)的数字表示。 例如 some textsome text。 “st”表示变化单位为半音,即,标准全音阶中的半调(半步)。
以百分比表示:以“+”(可选)或“-”开头且后跟“%”的数字表示,指示相对变化。 例如 some textsome text
常量值:
x-low
low

high
x-high
默认值
可选
range 表示文本音节范围的值。 可使用用于描述 pitch 的相同绝对值、相对值或枚举值表示 range。 可选
rate 指示文本的讲出速率。 可在字词或句子层面应用语速。 速率变化应为原始音频的 0.5 到 2 倍。 可将 rate 表述为:
相对值:
以相对数字表示:以充当默认值乘数的数字表示。 例如,如果值为 1,则原始速率不会变化。 如果值为 0.5,则速率为原始速率的一半。 如果值为 2,则速率为原始速率的 2 倍。
以百分比表示:以“+”(可选)或“-”开头且后跟“%”的数字表示,指示相对变化。 例如 some textsome text
常量值:
x-slow
slow

fast
x-fast
默认值
可选
volume 指示语音的音量级别。 可在句子层面应用音量的变化。 可将音量表示为:
绝对值:以从 0.0 到 100.0(从最安静到最大声)的数字表示。 例如 75。 默认值为 100.0。
相对值:
以相对数字表示:以前面带有“+”或“-”的数字表示,指定音量的变化量。 例如 +10 或 -5.5。
以百分比表示:以“+”(可选)或“-”开头且后跟“%”的数字表示,指示相对变化。 例如 some textsome text
常量值:
silent
x-soft
soft

loud
x-loud
默认值
可选
韵律示例
前面介绍了 prosody 元素属性支持的值。

更改语速示例
此 SSML 片段演示如何使用 rate 属性将语速更改为比默认语速高 30%。

XML

复制

<voice name="en-US-JennyNeural">
    <prosody rate="+30.00%">
        Enjoy using text-to-speech.
    </prosody>
</voice>


更改音量示例
此 SSML 片段演示如何使用 volume 属性将音量更改为比默认音量高 20%。

XML

复制

<voice name="en-US-JennyNeural">
    <prosody volume="+20.00%">
        Enjoy using text-to-speech.
    </prosody>
</voice>


更改音调示例
此 SSML 片段演示如何使用 pitch 属性来以高音调讲话。

XML

复制

<voice name="en-US-JennyNeural">
    Welcome to <prosody pitch="high">Enjoy using text-to-speech.</prosody>
</voice>


更改音调升降曲线示例
此 SSML 片段演示如何使用 contour 属性更改升降曲线。

XML

复制

<voice name="en-US-JennyNeural">
    <prosody contour="(60%,-60%) (100%,+80%)" >
        Were you the only person in the room?
    </prosody>
</voice>


调整强调
可选的 emphasis 元素用于添加或删除文本的单词级强调。 此元素只能包含文本和以下元素:audio、break、emphasis、lang、phoneme、prosody、say-as、sub 和 voice。

备注

单词级强调优化仅适用于以下神经网络声音:en-US-GuyNeural、en-US-DavisNeural 和 en-US-JaneNeural。

下表描述了 emphasis 元素的属性用法。

属性 说明 必需还是可选
level 指示要应用的强调强度:
reduced
none
moderate
strong

如果未指定 level 属性,则默认级别为 moderate。 有关每个属性的详细信息,请参阅强调元素 可选
重音示例
前面介绍了 emphasis 元素属性支持的值。

此 SSML 代码片段演示如何使用 emphasis 元素为单词“meetings”添加中等级别的强调。

XML

复制

<voice name="en-US-GuyNeural">
I can help you join your <emphasis level="moderate">meetings</emphasis> fast.
</voice>


添加录制的音频
audio 元素是可选的。 可以使用它将预先录制的音频插入 SSML 文档。 如果音频文件不可用或不可播放,可在 audio 元素的正文中包含可讲述的纯文本或 SSML 标记。 audio 元素还包含文本和以下元素:audio、break、p、s、phoneme、prosody、say-as 和 sub。

包含在 SSML 文档中的任何音频必须满足以下要求:

音频文件必须是有效的 .mp3、.wav、.opus、.ogg、.flac 或 .wma 文件。
单个响应中所有文本和音频文件的总时间不能超过 600 秒。
音频不得包含任何客户特定的信息或其他敏感信息。
备注

长音频 API 不支持 audio 元素。 对于长格式文本转语音,请改用批处理合成 API(预览版)。

下表描述了 audio 元素的属性用法。

属性 说明 必需还是可选
src 音频文件的 URI 位置。 音频必须托管在可通过 Internet 访问的 HTTPS 终结点上。 必须使用 HTTPS,托管文件的域必须提供有效的受信任 TLS/SSL 证书。 建议将音频文件放在文本转语音终结点所在 Azure 区域的 Blob 存储中,以最大限度地减少延迟。 必需
音频示例
前面介绍了 audio 元素属性支持的值。

此 SSML 片段演示如何使用 src 属性插入两个 .wav 文件中的音频。

XML

复制

<voice name="en-US-JennyNeural">
    <p>
        <audio src="https://contoso.com/opinionprompt.wav"/>
        Thanks for offering your opinion. Please begin speaking after the beep.
        <audio src="https://contoso.com/beep.wav">
            Could not play the beep, please voice your opinion now.
        </audio>
    </p>
</voice>


音频持续时间
使用 mstts:audioduration 元素设置输出音频的持续时间。 使用此元素可帮助同步音频输出完成的时间。 音频持续时间可以在原始音频速率的 0.5 到 2 倍之间减少或增加。 此处的原始音频是不包含任何其他速率设置的音频。 语速会根据设定值相应减慢或加快。

音频持续时间设置应用于其所在 voice 元素中的所有输入文本。 若要再次重置或更改音频持续时间设置,必须使用包含相同或不同语音的新 voice 元素。

下表描述了 mstts:audioduration 元素的属性用法。

属性 说明 必需还是可选
value 请求的输出音频持续时间,以秒(例如 2s)或毫秒(例如 2000ms)为单位。

此值应介于原始音频的 0.5 到 2 倍,没有任何其他速率设置。 例如,如果请求的音频持续时间为 30s,则原始音频必须介于 15 到 60 秒之间。 如果设置的值超出这些界限,则会根据相应的最小或最大倍数设置持续时间。

鉴于你请求的输出音频持续时间,语音服务会相应地调整语速。 使用语音列表 API 并查看 WordsPerMinute 属性,找出正在使用的神经网络语音的语速。 可以将输入文本中的字数除以 WordsPerMinute 属性的值,以获得近似的原始输出音频持续时间。 将音频持续时间设置为最接近估计持续时间时,输出音频会听起来最自然。 必须
mstts 音频持续时间示例
前面介绍了 mstts:audioduration 元素属性支持的值。

在此示例中,原始音频大约为 15 秒。 mstts:audioduration 元素用于将音频持续时间设置为 20 秒 (20s)。

XML

复制


<mstts:audioduration value="20s"/>
If we're home schooling, the best we can do is roll with what each day brings and try to have fun along the way.
A good place to start is by trying out the slew of educational apps that are helping children stay happy and smash their schooling at the same time.


后台音频
可以使用 mstts:backgroundaudio 元素将背景音频添加到 SSML 文档(或者使用文本转语音来混合音频文件)。 使用 mstts:backgroundaudio 可以在后台循环音频文件,在文本转语音的开头淡入,并在文本转语音的末尾淡出。

如果提供的背景音频短于文本转语音或淡出持续时间,则会循环该音频。 如果其长度超过文本转语音的持续时间,则它在完成淡出后将会停止。

每个 SSML 文档仅允许一个背景音频文件。 可以在 voice 元素中散布 audio 标记,以将更多的音频添加到 SSML 文档。

备注

mstts:backgroundaudio 元素应放在所有 voice 元素的前面。 如果已指定,它必须是 speak 元素的第一个子项。

长音频 API 不支持 mstts:backgroundaudio 元素。 对于长格式文本转语音,请改用批处理合成 API(预览版)。

下表描述了 mstts:backgroundaudio 元素的属性用法。

属性 说明 必需还是可选
src 背景音频文件的 URI 位置。 必需
volume 背景音频文件的音量。 接受的值:0 到 100(含)。 默认值为 1。 可选
fadein 背景音频淡入的持续时间,以毫秒为单位。 默认值为 0,即,不淡入。 接受的值:0 到 10000(含)。 可选
fadeout 背景音频淡出的持续时间,以毫秒为单位。 默认值为 0,即,不淡出。接受的值:0 到 10000(含)。 可选
mstss backgroundaudio 示例
前面介绍了 mstts:backgroundaudio 元素属性支持的值。

XML

复制

<mstts:backgroundaudio src="https://contoso.com/sample.wav" volume="0.7" fadein="3000" fadeout="4000"/>
<voice name="en-US-JennyNeural">
    The text provided in this document will be spoken over the background audio.
</voice>


后续步骤

import time
from azure.cognitiveservices.speech import AudioDataStream, SpeechConfig, SpeechSynthesizer, SpeechSynthesisOutputFormat
from azure.cognitiveservices.speech.audio import AudioOutputConfig
import azure.cognitiveservices.speech as speechsdk

speech_key, service_region = "XXXXXXXXXXXXXXXXX", "BBBBBBBBBBBBBBBBBBBB"
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
speech_config.speech_synthesis_language = "en-US"
speech_config.speech_synthesis_voice_name = "en-US-AriaNeural"

# ####################################

# en-US-AIGenerate1Neural1 (Male)
# # en-US-AIGenerate2Neural1 (Female) 
# # en-US-AmberNeural (Female)
# # en-US-AnaNeural (Female, Child)
# # en-US-AriaNeural (Female)
# # en-US-AshleyNeural (Female)
# # en-US-BrandonNeural (Male)
# # en-US-ChristopherNeural (Male)
# # en-US-CoraNeural (Female)
# # en-US-DavisNeural (Male)
# # en-US-ElizabethNeural (Female)
# # en-US-EricNeural (Male)
# # en-US-GuyNeural (Male)
# # en-US-JacobNeural (Male)
# # en-US-JaneNeural (Female)
# # en-US-JasonNeural (Male)
# # en-US-JennyMultilingualNeural3 (Female)
# # en-US-JennyNeural (Female)
# # en-US-MichelleNeural (Female)
# # en-US-MonicaNeural (Female)
# # en-US-NancyNeural (Female)
# # en-US-RogerNeural1 (Male)
# # en-US-SaraNeural (Female)
# # en-US-SteffanNeural (Male)
# # en-US-TonyNeural (Male)
#


audio_config = AudioOutputConfig(use_default_speaker=True)
speech_synthesizer = SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)

text_words = "It may have taken almost a year of bloodshed"
a="<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice name='en-US-AriaNeural'><prosody rate='slow'>"
b="</prosody></voice></speak>"

text_wor=a+text_words+b

result = speech_synthesizer.speak_ssml_async(text_wor).get()

# result = speech_synthesizer.speak_text_async(text_words).get()
if result.reason != speechsdk.ResultReason.SynthesizingAudioCompleted:
    print(result.reason)

with open("output"+str(time.time())+".mp3", "wb") as audio_file:
    audio_file.write(result.audio_data)

对比思维

维度:是事务现象的某种特种,一般是分类型变量,如性别、地区、时间。

指标:是衡量事务发展程度的单位和方法,通常需要经过加和、平均等聚合统计才能达到。一般是数值型变量。

 如UV/PV,页面停留时长、用户获取成本等。

“小时候,家长经常把我们与其他小孩子比成绩”

维度:小孩子(人)       指标:成绩

 “我们会对比各大学的往年平均录取率来选择学校”

维度:学校                    指标: 往年平均录取率

“出社会后,我们会常拿当前收入对比过往自己的收入”

-   维度:自己                    指标:收入

import pyttsx3
engine = pyttsx3.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', 125)
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[41].id)  #最好的发音:0、7、11、33、41
engine.say('world')
engine.say('wall')
engine.say('work')
engine.runAndWait()