【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件——实现播放阿拉伯数字

部署运行你感兴趣的模型镜像

问题:语音播报读出阿拉伯数字,而不是中文
解决方案:对阿拉伯数字文本切割加空格就能读出阿拉伯数字,而不是中文,或者文本内加----可实现

let SpeechTTS, msg, isReady = false
const initSpeak = () => {
	if (typeof plus !== 'undefined') {
		SpeechTTS = uni.requireNativePlugin("MT-TTS-Speech");
		SpeechTTS.init((callback) => {
			isReady = true;
		}, 'com.iflytek.speechcloud');
		// SpeechTTS.setPitch(50);  //设置语调 setPitch(num) 0-100, 默认 50
		SpeechTTS.setSpeed(1); //设置语速 setSpeed(num) 0-100, 默认 50
	} else {
		// 使用 SpeechRecognition 识别语音
		const recognition = new webkitSpeechRecognition();
		recognition.onresult = function(event) {
			const result = event.results[0][0].transcript;
			// 将识别的文本转换成语音
			const speech = new SpeechSynthesisUtterance(result);
			window.speechSynthesis.speak(speech);
		};

		// 启动语音识别
		recognition.start();

		//初始化语音播报
		SpeechTTS = window.speechSynthesis; // 启用文本
		msg = new SpeechSynthesisUtterance();
		var tips = '开始播放语音,请注意:';
		msg.lang = "zh-CN"; // 使用的语言:中文
		msg.volume = 1; // 声音音量:1
		msg.rate = 1; // 语速:1
		msg.pitch = 1; // 音高:1
	}
}
const updateSpeakMsg = (index) => {
		const data = page.list[index]
		if (!data) return
		if (typeof plus !== 'undefined' && isReady) {
			const queueNo = res.data.queueNo.split("").join(' ')
			SpeechTTS.speak({
				text:  `请 ${queueNo} 号到${res.data.windowName}`
			});
		} else if (SpeechTTS) {
			msg.text = `请${data.queueNo}--- 号到${data.windowName}`
			SpeechTTS.speak(msg); // 播放
		}
	}

转载:https://blog.youkuaiyun.com/qq_23073811/article/details/127486966

您可能感兴趣的与本文相关的镜像

HunyuanVideo-Foley

HunyuanVideo-Foley

语音合成

HunyuanVideo-Foley是由腾讯混元2025年8月28日宣布开源端到端视频音效生成模型,用户只需输入视频和文字,就能为视频匹配电影级音效

Android 系统自带语音合成TTS)功能主要依赖于 `TextToSpeech` 类,这是 Android SDK 提供的原生 API,允许应用程序将文本转换为语音输出。开发者可以直接使用这些 API 实现基础的语音合成功能,而无需依赖第三方插件。以下是关于 Android 系统中 TTS 插件或功能的详细介绍: ### 1. Android 原生 TTS 功能 Android 提供了内置的 `TextToSpeech` 引擎,支持多种语言和语音设置。开发者可以通过 `TextToSpeech` 类来实现文本到语音的转换。以下是一个基本的实现示例: ```java TextToSpeech tts = new TextToSpeech(context, new TextToSpeech.OnInitListener() { @Override public void onInit(int status) { if (status == TextToSpeech.SUCCESS) { int result = tts.setLanguage(Locale.US); if (result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED) { // 语言数据缺失或不支持 } else { tts.speak("Hello, world!", TextToSpeech.QUEUE_FLUSH, null, null); } } } }); ``` 此外,`TextToSpeech` 还支持设置语速、语调等参数,例如: - `setSpeechRate(float rate)`:设置语速,1.0 表示正常速度。 - `setPitch(float pitch)`:设置语调,1.0 表示正常语调 [^2]。 ### 2. MT-TTS 插件 MT-TTS(Mobile TTS)是由中国移动开发的一种语音合成解决方案,主要面向中文语音合成场景。MT-TTS 支持高质量的中文语音输出,并提供多种语音风格和语速调节功能。该插件通常需要集成 SDK,并通过特定的 API 调用实现文本到语音的转换。 MT-TTS 的主要优势包括: - 支持离线语音合成- 提供多种语音风格和语速控制。 - 高质量的中文语音输出。 集成 MT-TTS 的基本步骤包括: 1. 下载并导入 SDK。 2. 初始化 TTS 引擎。 3. 设置语音参数(如语速、语调)。 4. 调用 `speak()` 方法进行语音合成 [^2]。 ### 3. Cordova TTS 插件 对于使用 Cordova 开发的混合应用,可以使用 `com.wordsbaking.cordova.tts` 插件实现语音合成功能。该插件封装了 Android 原生 TTS API,支持 Android 4.0.3 及以上版本。插件提供了设置语言、语速、语调等功能,并且可以通过简单的 JavaScript 接口进行调用。 示例代码如下: ```javascript TTS.speak({ text: "Hello, world!", locale: "en-US", rate: 1.0 }, function () { console.log("语音播放完成"); }, function (reason) { console.log("语音播放失败: " + reason); }); ``` 该插件还支持设置语言、停止播放、获取播放状态等功能 [^1]。 ### 4. uni-app 中的 TTS 实现uni-app 中,可以通过封装的 TTS 插件实现语音合成功能。uni-app 提供了如 `speek()`、`stop()`、`setLanguage()` 等方法,支持设置语速、语调、语言等参数。以下是一个简单的调用示例: ```javascript uni.speek({ text: '测试语音播放', success: function () { console.log('播放完成'); }, fail: function (err) { console.log('播放失败', err); } }); ``` 此类插件通常基于原生 Android TTS 引擎实现,适用于需要跨平台支持的场景 [^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值