文字转声音

接到文字转语音的工作,探索了三种实现方案。

一、科大讯飞的API文档

语音合成(流式版)WebAPI 文档 | 讯飞开放平台文档中心

基础版:150万次访问,收费4000多。

二、speechSynthesis

<template>
  <div>
    <button @click="playVoice">playVoice</button>
  </div>
</template>

<script setup lang="ts">
const synth = window.speechSynthesis //创建语音
const msg = new SpeechSynthesisUtterance() //文本实例
const playVoice = () => {
  handleSpeak('树上有香蕉,请到3号科室就诊') // 传入需要播放的文字
}
// 语音播报的函数
const handleSpeak = (text) => {
  msg.text = text // 文字内容: 树上有香蕉,请到3号科室就诊
  msg.lang = 'zh-CN' // 使用的语言:中文
  msg.volume = 2 // 声音音量:1
  msg.rate = 1 // 语速:1
  msg.pitch = 1 // 音高:1
  synth.speak(msg) // 播放

  setTimeout(() => {
    handleStop()
  }, 10000)
}
// 语音停止
const handleStop = () => {
  synth.cancel()
}
</script>

SpeechSynthesisUtterance 

  • text属性,类型为DOMString

该属性指定该话语要合成和朗读的文本。这可以是纯文本,也可以是完整的、格式良好的 SSML 文档。最大长度, 32,767 个字符。

  • lang属性,类型为DOMString

此属性使用有效的 BCP 47 语言标签指定话语的语音合成的语言。[BCP47]如果未设置,则在获取脚本时仍保持未设置状态,但将默认使用html 文档根元素和关联层次结构的语言。当输入请求打开与识别服务的连接时,将计算并使用此默认值。

  • voice属性,类型为SpeechSynthesisVoice,可为 null

该属性指定 Web 应用程序希望使用的语音合成语音。当SpeechSynthesisUtterance创建对象时,该属性必须初始化为 null。如果在方法调用时speak(),此属性已设置为SpeechSynthesisVoice返回的对象之一getVoices(),则用户代理必须使用该语音。如果在方法调用时此属性未设置或为空speak(),则用户代理必须使用用户代理默认语音。用户代理默认语音应该支持当前语言(请参阅参考资料lang),并且可以是本地或远程语音服务,并且可以通过用户代理提供的界面(例如浏览器配置参数)合并最终用户的选择。

  • volume属性,类型为float

该属性指定话语的说话音量。它的范围在 0 和 1 之间(包括 0 和 1),其中 0 是最低音量,1 是最高音量,默认值为 1。如果使用 SSML,则该值将被标记中的 prosody 标签覆盖。

  • rate属性,类型为float

该属性指定话语的语速。它与该语音的默认速率相关。 1是语音合成引擎或特定语音支持的默认速率(应对应于正常说话速率)。 2 的速度是原来的两倍,0.5 的速度是原来的一半。严格禁止低于 0.1 或高于 10 的值,但语音合成引擎或特定语音可能会进一步限制最小和最大速率,例如,即使您指定大于 3 的值,特定语音实际上可能不会比正常说话速度快 3 倍. 如果使用 SSML,则该值将被标记中的 prosody 标签覆盖。

  • pitch属性,类型为float

该属性指定说话的音高。它的范围在 0 到 2 之间(包括 0 和 2),其中 0 是最低音高,2 是最高音高。 1对应于语音合成引擎或特定语音的默认音高。语音合成引擎或语音可能进一步限制最小和最大速率。如果使用 SSML,则该值将被标记中的韵律标签覆盖。

三、speak-tts 的node包

speak-tts - npm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值