█ 【安卓学习之开源项目】 ParrotTongue:文字转语音(含LeLeTextToVoice、TextToMp3项目)
█ 系列文章目录
提示:这里是收集了安卓学习之常见问题的相关文章
█ 文章目录
█ 读前说明
- 本文通过学习别人写demo,学习一些课件,参考一些博客,’学习相关知识,如果涉及侵权请告知
- 本文只简单罗列相关的代码实现过程
- 涉及到的逻辑以及说明也只是简单介绍,主要当做笔记,了解过程而已
- 项目源码:ParrotTongue
- demo:
█ 项目UI
█ 项目信息
?? 提交信息:2020 年 2 月 7 日
?? 配置信息 ● 在Project的build.gradle文件中配置:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
}
}
● 在Project的gradle-wrapper.properties文件中配置:
#Sun Dec 08 22:42:32 CST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
● 在Module的build.gradle文件中添加依赖和属性配置:
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.whn946.parrottongue"
minSdkVersion 21
targetSdkVersion 29
versionCode 4
versionName "2.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
}
█ 开始:AudioRecordThread 和 Mp3EncodeThread
?? AudioRecordThread
█ 常见问题
?? 安装语音引擎 小米手机,默认已经安装了【小爱语音引擎】
?? FileNotFoundException
021-08-14 17:22:39.914 20241-20241/com.whn946.parrottongue E/TextToSpeech: Opening file /storage/emulated/0/0pcm/11-20210814172239.mp3 failed
java.io.FileNotFoundException: open failed: EACCES (Permission denied)
at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:315)
at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:220)
at android.speech.tts.TextToSpeech$17.run(TextToSpeech.java:1842)
at android.speech.tts.TextToSpeech$17.run(TextToSpeech.java:1832)
at android.speech.tts.TextToSpeech$Connection.runAction(TextToSpeech.java:2312)
at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:763)
at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:753)
at android.speech.tts.TextToSpeech.synthesizeToFile(TextToSpeech.java:1832)
at android.speech.tts.TextToSpeech.synthesizeToFile(TextToSpeech.java:1889)
at com.whn946.parrottongue.DefaultModeActivity$11$1.onClick(DefaultModeActivity.java:282)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:7592)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
参考:2020-04-08 关于Android java.io.FileNotFoundException: open failed: EACCES (Permission denied)_zhuhuitao_struggle-CSDN博客 Android Q 默认开启沙箱模式 导致出现文件读写失败,在manifest application中加上 android:requestLegacyExternalStorage=“true”
█ 附赠1:LeLeTextToVoice-OCR(图片转文字)
??在Module的build.gradle文件中添加依赖和属性配置:
dependencies {
implementation 'com.jakewharton.rxbinding:rxbinding:1.0.0'
implementation 'com.rmtheis:tess-two:6.2.0'
}
??封装工具OCRUtils :
public class OCRUtils {
private static final String TAG = "OCR";
@RequiresApi(api = Build.VERSION_CODES.N)
public static String parseImageToString(Bitmap bitmap) throws IOException {
if( bitmap == null ){
return "";
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
int rotate = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
InputStream isBm = new ByteArrayInputStream(baos.toByteArray());
ExifInterface exif = new ExifInterface(isBm);
int imageOriention = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
Log.i(TAG, "Current image orientation is " + imageOriention);
switch (imageOriention){
case ExifInterface.ORIENTATION_ROTATE_90:
rotate = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotate = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
rotate = 270;
break;
}
Log.i(TAG, "Current image rotate is " + rotate);
int w = bitmap.getWidth();
int h = bitmap.getHeight();
Matrix mtx = new Matrix();
mtx.preRotate(rotate);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, false);
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
TessBaseAPI baseAPI = new TessBaseAPI();
baseAPI.setDebug(true);
baseAPI.init(Environment.getExternalStorageDirectory().getPath()+"/tesseract/", "eng");
baseAPI.setImage(bitmap);
String recognizedText = baseAPI.getUTF8Text();
Log.i(TAG, "exchanged : " + recognizedText);
return recognizedText;
}
}
??使用(图片转文字) :
RxView.clicks(findViewById(R.id.btn_ocr))
.throttleFirst(500, TimeUnit.MILLISECONDS)
.subscribe(new Action1<Void>() {
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void call(Void aVoid) {
try {
String text = OCRUtils.parseImageToString(BitmapFactory.decodeResource(MainActivity.this.getResources(), R.mipmap.test));
Log.e("MainActivity","text2 ="+text);
} catch (IOException e) {
e.printStackTrace();
}
}
});
█ 附赠2:TextToMp3(收费,需要联网)
??TextToMp3工具下载是一款文字转语音的工具,为你制作广告,有声小说,文档,案例。或者做一些自媒体节目。或者上传到有声小说,有声阅读平台都是非常不错的工具,推荐来下载体验。
??需要联网,导出时,需要金币,金币需要充值收费
??软件介绍
软件介绍 |
---|
一款人气较高的软件。TextTomp3软件是一款文本转语音app,TextToMp3 app可以迅速将文字转化成语音,方便快捷,而且TextToMp3 app还支持外语配音,多语言支持,功能强大。 | 软件功能 | * Text To Mp3支持多语种配音:英语配音、日语配音、韩语配音; * Text To Mp3支持添加背景音乐; * Text To Mp3支持录音功能; * Text To Mp3支持mp3分享和导出; * Text To Mp3支持文字转语音; * Text To Mp3支持免费文字转语音(TTS)播放Mp3配音; * Text To Mp3支持免费语音合成; | 软件特色 | 1、广告配音:商场广告宣传配音,企业宣传配音,电影配音等; 2、语音合成:制作各种配音,小说配音,杂志,教科书阅读等; 3、广播配音:学校,企业,车站,机场和购物中心的广播; 4、多媒体配音:光盘解说、集团彩铃、电信、金融CTI的语音录制。 5、解说配音:企业专题片、建筑动画、工程标书解说等配音解说。 6、教学配音:电子词典、教材、电子图书、各类语音IC系列录制。 |
█ 相关资料
提示:这里是参考的相关文章
- Mr946/ParrotTongue: 文转音-安卓调用系统TTS实现文字转语音并保存为mp3音频文件。
- 2020-04-08 关于Android java.io.FileNotFoundException: open failed: EACCES (Permission denied)_zhuhuitao_struggle-CSDN博客
- 2018-09-12 android客户端ORC图片识别库tess_two的使用_隔壁小王的博客-CSDN博客
- 2016-05-03 文字转语音花费太多时间,而synthesizeToFile Android中 - VoidCC:使用Android内置TTS Engine合成mp3文件,文字转语音花费太多时间,我已经解决了这个问题,将整个文件转换为段落块,并将段落添加到TTS引擎并直接播放。
- 2017-02-06 LeLeTextToVoice: 将文字转换为语音:防止重复点击rxbinding、加载动画Android-SpinKit、OCR工具Tess-Two、科大讯飞Msc.jar
- TextToMp3工具下载|TextToMp3v2.0.10安卓版下载 - 99安卓游戏
- 官网:离线语音合成 - 语音合成 - 讯飞开放平台
- 官网:TextToSpeech - synthesizeToFile | Android 开发者 | Android Developers
█ 免责声明
博主分享的所有文章内容,部分参考网上教程,引用大神高论,部分亲身实践,记下笔录,内容可能存在诸多不实之处,还望海涵,本内容仅供学习研究使用,切勿用于商业用途,若您是部分内容的作者,不喜欢此内容被分享出来,可联系博主说明相关情况通知删除,感谢您的理解与支持! |
---|
提示:转载请注明出处: https://blog.csdn.net/ljb568838953/article/details/119703057
|