Android TTS文字转语音开发

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">之前在做TTS开发的时候能够正常的将文字转为语音,但是今天做了一个小程序,结果却发不了音,仔细测试了一下,发现了一个问题。</span>

首先先讲下TTS如何实现。

1、安装语音库,假如要中文发音,科大讯飞语音3.0就很好。

2、最简单的程序如下:

package com.example.tts;

import java.util.Locale;

import android.speech.tts.TextToSpeech;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity implements TextToSpeech.OnInitListener{
	TextToSpeech textToSpeech = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		textToSpeech = new TextToSpeech(this, this);
		textToSpeech.speak("此处无声", TextToSpeech.QUEUE_ADD, null);

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {

		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}
	protected void onDestroy()
    {
    	super.onDestroy();
    	if (textToSpeech!=null) {
    		textToSpeech.shutdown();
		}
    }
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			textToSpeech.speak("此处有声", TextToSpeech.QUEUE_FLUSH, null);
			return true;
		}
		return super.onOptionsItemSelected(item);
	}

	@Override
	public void onInit(int status) {
		// TODO Auto-generated method stub
		if (status == TextToSpeech.SUCCESS) {
            int result = textToSpeech.setLanguage(Locale.CHINESE);
            if (result == TextToSpeech.LANG_MISSING_DATA
                    || result == TextToSpeech.LANG_NOT_SUPPORTED
                    || result == TextToSpeech.ERROR) {
                Toast.makeText(this, "数据丢失或语言不支持", Toast.LENGTH_SHORT).show();
            }
            if (result == TextToSpeech.LANG_AVAILABLE) {
            	Toast.makeText(this, "支持该语言", Toast.LENGTH_SHORT).show();
			}
            Toast.makeText(this, "初始化成功", Toast.LENGTH_SHORT).show();
        }
	}
}

无需任何权限,这里有个问题,就是在动态创建一个对象之后,在onCreate里面调用speak方法,并不能发出声音。

可以把文字保存为语音文件,也可以读取语音文件

	public void saveToFile(TextToSpeech speech,String text,String file)
	{
		String destFileName = "/sdcard/tts/"+file+".wav";
		speech.synthesizeToFile(text, null, destFileName);
	}

	public void readFromFile(TextToSpeech speech,String file)
	{
		String destFileName = "/sdcard/tts/"+file+".wav";
		speech.addSpeech("2", destFileName);
		speech.speak("2", TextToSpeech.QUEUE_ADD, null);

	}

这样就可以了。

接下来讲一下如何实现语音识别

时间: 2024-10-09 09:05:09

Android TTS文字转语音开发的相关文章

C++ Builder 源码:TTS 文字转语音,可以朗读文字,或者把文字转为 wav 声音文件

TTSDemo / TVictorTTS: 兼容 C++ Builder 2010 ~ C++ Builder 10 (CX) 版本 ? 包括 Win32 和 Win64 两个版本.兼容的操作系统:Windows XP, Windows 7, Windows Vista, Windows 8, Windows 10. ? 把文字复制 → 粘贴在软件的文本框里面,也可以在文本框里面输入和修改,可以把这些文字读出来. ? 支持把文本框里面的文字转为 wav 声音文件. http://www.cppf

Android文字转语音

虽然视觉上的反馈通常是给用户提供信息最快的方式,但这要求用户把注意力设备上.当用户不能查看设备时,则需要一些其他通信的方法.Android提供了强大的文字转语音Text-to-Speech,TTS API.使开发者能够在应用中添加语音通知和其他语音反馈功能,而不要求用户看着屏幕. 下面的代码展示了如何使用TTS API: public class TextToSpeechDemo implements TextToSpeech.OnInitListener { private final Tex

【Android语音合成TTS】百度语音接入方法,和使用技巧详解

请尊重他人的劳动成果,转载请注明出处:[Android语音合成TTS]百度语音接入方法,和使用技巧详解 Ps. 依托于百度开放云,百度语音为合作伙伴提供了业界领先.永久免费的语音技术服务,目前已上线的服务包括语音识别.语义解析.语音合成,后续会继续带来开放资源.多轮对话等技术服务:通过SDK.REST API及离线开发包等多种服务方式,满足不同开发者的开发需求. 目前百度语音提供免费的语音接入,语音合成质量尚可,但还没开放离线TTS. 服务接入流程 具体详情可查看:http://yuyin.ba

DelphiXE7调用GOOGLE的TTS(文字转语音)

注意:在手机上必须选安装文字转语音引擎“google Text To Speech”地址:http://www.shouji56.com/soft/GoogleWenZiZhuanYuYinYinQingGoogleTexttoSpeech_3864/ 1. 新建一个单元Androidapi.JNI.TTS 1 {*******************************************************} 2 { } 3 { CodeGear Delphi Runtime L

C#WPF 语音开发教程 源代码下载 csdn tts(text to sound) 一步一步 教你制作语音软件 附图和源代码

C#WPF  语音开发教程  一步一步 教你制作语音软件 附图和源代码 效果展示 一 项目准备 1.vs2012开发平台 2.微软的语音软件库 下载:http://download.csdn.net/detail/wyx100/8431269 (含实例项目源代码) 二.开发目标 制作一个语音软件,可以朗读文字: 多个语音库:男音和女音.支持英文和中文朗读: 支持选择播放设备 支持朗读语速选择 支持音量选择 三 开发过程 1.新建WpfSpeechDemo工程 文件(vs开发平台左上角)----新

文字转语音,语音合成,文字语音播报---解决过程

做了很久生产项目 经常遇到一个问题:就是想把文字用语音播报出来:当然了声音要清晰,好听,不能太机械.  这个问题怎么解决呢?一般不外乎两种方法,第一种,将文字录成MP3格式用控件播放.另外一种:直接文字语音播报. 我一直都是用第一种方法居多,但是最近遇到个棘手的事情,就是数量巨大和文字变动较大.因此深入研究了下,记录下过程. 第一种方法:就是费时费力但是好处是人工转换了删选了效果比较好.但是两大或者文字变动 是个大隐患. 第二种方法:用微软自带的tts引擎,效果不好.播放不清晰,好处是com组件

转:?Android IOS WebRTC 音视频开发总结 (系列文章集合)

随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). callstats是一家做实时通讯性能测阅读全文 posted @ 2016-07-22 08:24

Android Metro风格的Launcher开发系列第二篇

前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如何配置Android开发环境,只是用文字和图片展示了开发Metro风格Launcher的初步设计和产品要求,这一篇文章将会从代码上讲解如何实现对应的UI效果,好了,评书开讲! Launcher主体框架实现: Launcher主体框架我选用的是大家所熟悉的ViewPager控件,因为ViewPager

Android IOS WebRTC 音视频开发总结(三五)-- chatroulette介绍

本文主要从技术角度介绍chatroulette,文章来自博客园RTC.Blacker,支持原创,转载请说明出处. 很多人不知道或没用过chatroulette,下面先来张界面截图让大家有个整体了解: 特点介绍: 1.平均每天在线用户150万(对于一个没做过广告的网站来说这是一个很了不起的数字). 2.作者是一个17岁俄国高中生,11岁就开始学习编程. 3.为什么那么吸引人——因为在一个空白屏幕后面,有一批陌生人正在等待着与你聊天,人品好的话能见到各种肤色的美女. 现有技术: 1.技术原理其实很简