帮微软语音助手纠正“阿弥陀佛”“e”字错误发音的技巧

2024-01-28 18:10

本文主要是介绍帮微软语音助手纠正“阿弥陀佛”“e”字错误发音的技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

微软AI文字转语音助手,现已被大家普便应用。最近在传统文化佛学名词的发音转换应用中,发现了一个致命的错误。那就是“阿弥陀佛”中的“”字的“a”发音,被误读为“e”。说起这个重大的错误,佛门大德南怀瑾老师也一再叮嘱,希望后人纠正错误发音。毕竟佛学文化是严谨严肃的民族文化。传错了,真就误导后世子孙了。

其实,究其缘起真不怪微软。毕竟西方人不了解东方文化是很正常的。但是,得知这个错误发音,竟然是被某些热门电视剧误读后,才被大众广泛沿用的,不免让人唏嘘。现在国人编剧们,确实要多恶补传统文化了。不然,这复兴中国文化的重任,情何以担呐。哈哈。

字在佛法的经咒中使用很多,含义广泛,是业的代表。那么,问题来了,如何让语音助手云希改掉错误发音呢?

二、解决方案

1、添加标点符号法:

在这里插入图片描述

经过反复测试,发现【阿弥陀佛】连读时,一直是错误的e mi tuo fo发音。通过在字后加各种分割符测试后。发现,加上一个上斜点【阿`弥陀佛】后,就可以得到语速正常的“a mi tuo fo”发音了。其他的分割符或标点,字读音时间过长,不适合连读。好了,这一历史性发音错误,终于解决了。哈哈。
南无阿弥陀佛。

2、微软官方ssml标记法:

以下内容转载自:www.360mb.net/32732.html
前提是软件要支持ssml标记,建议使用开源 tts-vue 软件,gitee和github都有。

1)语法标记说明:

使用微软语音合成 API 进行语音合成时,常用的事件处理包括以下几个方面:

a. 停顿:语音合成会自动根据标点符号以及文本内容进行停顿和语调变换。同时,可以通过添加 SSML 标记来控制停顿的时长和位置,例如使用 <break> 标记来指定停顿的时间长度或调整语调。需要注意的是,停顿时间长度应该适当,过长或过短都不利于语音合成的自然度。

b. 多音:为了避免多音字在语音合成中的发音出现错误,可以通过在相应文字上添加注音或拼音信息来指定正确的读音。例如,可以使用 <phoneme> 标记来指定复杂或罕见的词汇的发音,或使用 <sub> 标记来替换不常用或特殊的词汇。需要注意的是,正确指定多音字的发音对于语音合成的质量具有重要影响。

在使用微软语音合成 API 进行语音合成时,需要注意上述几个方面,并采取相应的措施来保证语音合成的自然度和质量。

2)范例:汉字多音字处理

<phoneme> 标记是 SSML(Speech Synthesis Markup Language)中的一个元素,用于指定特定音素或音序列的发音。在 Microsoft SAPI (Speech API)中,<phoneme> 标记可以使用 alphabet 属性指定音素表类型,使用 ph 属性指定具体的音素或音序列。

中文案例

<speak><s><phoneme alphabet="sapi" ph="a 1">阿</phoneme>弥陀佛。</s><s><phoneme alphabet="sapi" ph="e 1">阿</phoneme>弥陀佛。</s>
</speak>

<phoneme alphabet="sapi" ph="shan 4">单</phoneme> 这个例子中,alphabet 属性指定了音素表类型为 Microsoft SAPI,ph 属性指定了要发音的音素或音序列为 “shan 4”,这表示 “单” 这个汉字的第四声音。

因此,当微软语音合成 API 遇到这个 <phoneme> 标记时,会根据指定的音素进行发音,从而可以实现更准确的语音合成效果。

其它案例:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="en-US-JennyNeural"><phoneme alphabet="ipa" ph="tə.ˈmeɪ.toʊ"> tomato </phoneme></voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="en-US-JennyNeural"><phoneme alphabet="ipa" ph="təmeɪˈtoʊ"> tomato </phoneme></voice>
</speak>
<speak version="1.0" xmlns="https://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="en-US-JennyNeural"><phoneme alphabet="sapi" ph="iy eh n y uw eh s"> en-US </phoneme></voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="en-US-JennyNeural"><s>His name is Mike <phoneme alphabet="ups" ph="JH AU"> Zhou </phoneme></s></voice>
</speak>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><voice name="en-US-JennyNeural"><phoneme alphabet='x-sampa' ph='he."lou'>hello</phoneme></voice>
</speak>

停顿处理
在使用微软文字转语音 API 进行 SSML 播放时,可以使用 标签来控制语音合成的停顿或延迟时间。 标签有一个 time 属性,用于指定停顿或延迟的时间长度,单位为毫秒。

例如,下面的代码片段表示在播放语音过程中间隔 2 秒钟的时间:

<speak>
<s>这是一个示例句子。</s>
<break time="2000ms" />
<s>这是下一个示例句子。</s>
</speak>

在这段代码中,通过在两个语音段之间插入 标签,并设置 time属性为“2000ms”,就实现了两个语音段之间停顿 2 秒钟的效果。

需要注意的是,标签的 time属性值不宜过长或过短,过长可能会使语音合成显得拖沓生硬,而过短则可能导致语音合成不太自然。因此,在使用标签时,需要根据实际情况选择合适的停顿或延迟时间。其中2000ms=2s也就是2000毫秒等于2秒,这里的事停顿事件可按需自行处理。

南无阿弥陀佛

这篇关于帮微软语音助手纠正“阿弥陀佛”“e”字错误发音的技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/654392

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题

《如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socketreadtimedout的问题》:本文主要介绍解决Druid线程... 目录异常信息触发场景找到版本发布更新的说明从版本更新信息可以看到该默认逻辑已经去除总结异常信息触发场景复

Python struct.unpack() 用法及常见错误详解

《Pythonstruct.unpack()用法及常见错误详解》struct.unpack()是Python中用于将二进制数据(字节序列)解析为Python数据类型的函数,通常与struct.pa... 目录一、函数语法二、格式字符串详解三、使用示例示例 1:解析整数和浮点数示例 2:解析字符串示例 3:解

CentOS 7 YUM源配置错误的解决方法

《CentOS7YUM源配置错误的解决方法》在使用虚拟机安装CentOS7系统时,我们可能会遇到YUM源配置错误的问题,导致无法正常下载软件包,为了解决这个问题,我们可以替换YUM源... 目录一、备份原有的 YUM 源配置文件二、选择并配置新的 YUM 源三、清理旧的缓存并重建新的缓存四、验证 YUM 源

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

基于Python实现智能天气提醒助手

《基于Python实现智能天气提醒助手》这篇文章主要来和大家分享一个实用的Python天气提醒助手开发方案,这个工具可以方便地集成到青龙面板或其他调度框架中使用,有需要的小伙伴可以参考一下... 目录项目概述核心功能技术实现1. 天气API集成2. AI建议生成3. 消息推送环境配置使用方法完整代码项目特点