文字转语音 两种方法:TextToSpeech、科大讯飞

news/2025/2/11 19:53:00/

TextToSpeech核心代码:

 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);mBinding.setOnClick(this);mTextToSpeech = new TextToSpeech(this,this);}private void speakOut() {if (mTextToSpeech!= null && !mTextToSpeech.isSpeaking()){
//            Bundle bundle = new Bundle();
//            bundle.putFloat(TextToSpeech.Engine.KEY_PARAM_VOLUME,1.0f);//朗读,注意这里三个参数的added in API level 4   四个参数的added in API level 21
//            mTextToSpeech.speak(mBinding.editText.getText().toString(),TextToSpeech.QUEUE_FLUSH,null);mTextToSpeech.speak(mBinding.editText.getText().toString(),TextToSpeech.QUEUE_FLUSH,null,"");}}/*** 初始化语音播放* @param status*/@Overridepublic void onInit(int status) {if (status == TextToSpeech.SUCCESS){// 设置音调,1.0是常规mTextToSpeech.setPitch(1.0f);//设定语速 ,默认1.0正常语速mTextToSpeech.setSpeechRate(1.0f);int result = mTextToSpeech.setLanguage(Locale.CHINA);if (result == TextToSpeech.LANG_MISSING_DATA|| result == TextToSpeech.LANG_NOT_SUPPORTED){Toast.makeText(this,"数据丢失或不支持",Toast.LENGTH_SHORT).show();}}}

科大讯飞:

@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBinding = DataBindingUtil.setContentView(this, R.layout.activity_xun_fei);mBinding.setOnClick(this);//初始化科大讯飞SpeechUtility.createUtility(getApplicationContext(), SpeechConstant.APPID + "=5b558975");mSynthesizer = SpeechSynthesizer.createSynthesizer(this, this);}private void speak() {mSynthesizer.startSpeaking(mBinding.editTextXf.getText().toString(),mSynthesizerListener);}/*合成回调*/private SynthesizerListener mSynthesizerListener = new SynthesizerListener() {@Overridepublic void onSpeakBegin() {//开始播放}@Overridepublic void onBufferProgress(int i, int i1, int i2, String s) {//合成进度}@Overridepublic void onSpeakPaused() {//暂停播放}@Overridepublic void onSpeakResumed() {//继续播放}@Overridepublic void onSpeakProgress(int i, int i1, int i2) {//播放进度}@Overridepublic void onCompleted(SpeechError speechError) {if (speechError == null){//播放完成}else {}}@Overridepublic void onEvent(int i, int i1, int i2, Bundle bundle) {// 以下代码用于获取与云端的会话id,当业务出错时将会话id提供给技术支持人员,可用于查询会话日志,定位出错原因// 若使用本地能力,会话id为null}};@Overridepublic void onInit(int i) {if (i != ErrorCode.SUCCESS){return;//初始化失败}mSynthesizer.setParameter(SpeechConstant.ENGINE_MODE, SpeechConstant.MODE_MSC);mSynthesizer.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);mSynthesizer.setParameter(ResourceUtil.TTS_RES_PATH, getResourcePath());mSynthesizer.setParameter(SpeechConstant.VOICE_NAME, voicerLocal);}

 

代码较为简单,有不足之处大家可以留言交流

完整代码见GitHub

 


http://www.ppmy.cn/news/963867.html

相关文章

怎么将语音转为文字?不如试试这几个语音转文字软件app

随着时代的发展,现在许多小伙伴会将重要却来不及整理的内容,用录音或是语音的方式记录下来,之后再进行整理。但是在整理的时候,有些人可能会因为需要多听几遍音频才能完成工作而感到痛苦,毕竟这样做,花费的…

微软文字转语音,就用这三个免费的方法~

总所周知,微软的TTS语音合成技术目前已经做到了非常自然,接近真人音色,在不了解前提下有时候真的很难分辨出这是机器合成的声音。 目前微软的文字转语音已经支持21个中文简体的声音,并且支持多种声音风格的选择和语速、音调的调整…

使用语音包合成你想说的话-文字转语音

import glob import os import scipy.io.wavfile as wav import numpy as np# merge_files_in_a_folder # 合并音频 def merge_files(path_read_folder, path_write_wav_file,text_to_voice="你好"):merged_signal = [

语音怎么转换成文字?这几个实用方法分享给你

当我们在听一些流行的英文歌曲时,发现它没有附带翻译的时候,是不是常常听不懂歌曲的意思内容呢?面对这种情况应该怎么办呢?其实也不难,我们只需要利用软件来将歌曲转换成文字的格式就可以了,那你们知道如何…

分享这几个在线语音转文字的方法,快快收藏好

我们日常工作中,语音转文字的需求还是很多的,比如开会的时候,将领导的发言录音下来,会后进行总结。那我们录音下来之后,应该如何语音转文字呢?下面我就来分享几个语音转文字的方法,一起来看看吧…

语音转文字怎么转?分享这些实用软件

在参加日常工作会议时,有时候大家记录的速度跟不上对方的语速,会导致会议记录不完整,影响到工作效率。有些小伙伴就把会议内容进行录音,待会后再将录音文件进行整理,这样做既方便快捷,同时能提高工作效率。…

5款软件做访谈 | 语音转文字 | 实时转录 | 简单高效

最近在做访谈,所以整理了一些好用的录音转文字的软件和APP,跟大家分享下,希望能够对大家有用~ 1、百度输入法的语音输入 需要先下载百度输入法,然后打开一份空白的Word文件,点击"语音输入"&#…

ChatGPT,云服务商们的全新“云”阵地?

随着ChatGPT在全球范围内的“大火”,围绕“AI”的产业浪潮再次席卷整个TMT行业。但从目前的市场反馈来看,大众对于ChatGPT在C端市场的应用体验反应更直接一点,而对于技术相对晦涩、难以感知的云计算市场,则反应比较冷淡。 但在这…