- 博客(28)
- 资源 (35)
- 问答 (1)
- 收藏
- 关注
原创 TensorflowTTS 中文android客户端
TensorflowTTS支持中文了,但是android客户端还只支持英文。本文说一下安卓的移植过程。一、模型格式转换https://colab.research.google.com/drive/1YpSHRBRPBI7cnTkQn1UcVTWEQVbsUm1S?usp=sharing去上面链接下载fastspeech2和mbmelgan的模型,下载下来是 .h5格式,需要转换成.tflite格式,安卓才能使用。转换完之后,放到对应的asset中。二、修改android工程中一些代..
2020-11-20 15:54:19 2816 2
原创 TensorflowTTS项目中.h5文件转.tflite脚本
FastSpeech2import tensorflow as tfimport yamlimport numpy as npimport matplotlib.pyplot as pltimport IPython.display as ipdfrom tensorflow_tts.processor import LJSpeechProcessorfrom tensorflow_tts.processor.ljspeech import LJSPEECH_SYMBOLSfro
2020-11-20 15:37:58 788
原创 android录制小视频mp4(不依赖系统API)解决android API碎片化兼容性问题
先说下,为什么不适用简单便捷的系统API去录制mp4呢。 使用android系统api常用的方案有,MediaRecoder,或者MediaCodec和MediaMuxer来完成,但是这样做的时候,大家可能会发信,由于android系统层各个厂商的高度定制,很难保证这些api可以稳定的工作。从而要写很多适配特殊设备的代码,即便这样,还是难以保证稳定性,经常会遇见某款手机调用api...
2019-08-16 15:02:35 526
原创 Android IOS风格 MultiToggleButton(多状态选择控件) SeekBar
MultiToggleButton风格效果如下:SeekBar风格效果如下:Git项目地址:github欢迎大家扩充这个库
2018-05-25 11:24:05 528
原创 Android SystemUI引用RenderScript库
需要在SystemUI中使用高斯模糊效果,android系统中framework/base/rs库有次功能,应用层使用这个库对应的java包名称是android.support.v8.renderscript。需要在systemui中调用这个库,就得修改systemui下的android.mk。android.mk修改后如下:LOCAL_PATH:= $(call my-dir)i...
2018-05-25 09:44:05 808
原创 NotificationListenerService是如何启动的?
前言 简单的继承NotificationListenerService这个抽象类,就可以实现接收/移除系统通知的功能,但是在使用的时候,不知道有哪位同学有过这样的疑惑?这个服务是怎么启动的。看下这个类的源码就会发现,它继承了Service,但是在使用的时候,没有使用startService或bindService来启动,它是怎么启动的呢?怎么用简单说下怎么用,继承这个抽象类,重写on...
2018-03-23 16:28:43 4050
原创 android录屏直播:VLC通过rtsp协议播放android录屏实时视频(Java实现)
首先说下为什么要做这样一个东西 在上家公司的时候,作为客户端开发,一个月要给领导演示异常app的开发成果,当时用的策略是用录屏类软件,录制成mp4,然后通过投影播放mp4文件,来给领导看。这样做带来的问题是,要提前准备mp4需要时间,领导想要看除了mp4外的内容时,体验不好。自己对流媒体知识有一些了解,所以就想做一个直播android屏幕的app,这就是想做这样一个东西的原因。项...
2018-03-16 14:13:53 12292 28
原创 android通过MediaProjectionManager录屏关联MediaCodec获取h264数据
android 5.0增加了MediaProjectionManager,通过它我们可以简单的完成录屏的需求。本文会简单介绍MediaProjectionManager的使用流程,通过MediaCodec获取到的264数据MediaProjectionManager的用法1.获取MediaProjectionManager实例 通过调用getSystemService方法获取MediaPr...
2018-03-08 11:09:23 14095 8
原创 flask+新浪sae+图灵机器人实现超简单微信公众号智能回复功能
人工智能很火,但是智能算法对于大多数人来说门槛儿还是挺高的对于我们这种喜欢折腾的码农来说,就算不会算法也要又一颗想折腾的心我们不会算法,可以基于已经成熟的算法成果来做一些好玩儿的东西本文介绍下微信公众号接入图灵机器人实现智能回复功能申请微信公众号;申请新浪SAE,初次申请新浪会给200个云豆,完全够我们玩儿一阵儿了;在新浪SAE上创建一个python的项目,使用git或者svn把工程代码拉下来,我...
2018-02-13 16:27:12 1096
原创 python接入微信公众号 使用新浪SAE在未实名情况下 token验证失败问题
第一步要申请公众号,没有坑,顺利通过,下来申请了新浪SAE,把接入微信的flask工程通过git传到云上,开始运行但是通过微信端验证时,发现总是提示token验证失败,又查看了微信的接口文档,而且通过自己本地的环境也验证了代码没啥问题,就想到了,可能是服务端返回的值有问题,果然,通过wireshake抓包发现,在新浪云没有实名的情况下,服务端在返回的时候在content里面加了一个html,导致了...
2018-02-13 12:28:46 940 4
原创 android 圆形relativelayout
需求描述:圆形容器,内部有一个lable解决方案:通过设置relativelayout的background来设置其shape,达到目的,代码如下:<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" andr...
2018-02-08 14:10:24 1398
原创 android ImageView 圆角控件 设置上下左右某几个为圆角
需求描述:ImageView的上面两个角为圆角,下面两个角不变解决方案:重写ImageView控件,在onDraw方法中,设置Path来达到目的控件代码如下:public class RoundRectImageView extends ImageView { /*左上角xy半径,右上角,右下角,左下角*/ private float[] rids = {10.0f, 10.0f,...
2018-02-08 14:06:10 1615 2
原创 android recyclerView 设置item间的间距
使用场景:recyclerview要通过代码设置item间的场景解决方案:1.重写RecyclerView.ItemDecoration方法,代码如下:public class SpaceItemDecoration extends RecyclerView.ItemDecoration{ private int leftRight; private int topBottom;...
2018-02-08 14:01:02 19127 4
原创 android HorizontalScrollView嵌套RecyclerView横向不能滑动问题
开发场景:在 HorizontalScrollView内嵌套RecyclerView和其他内容,要求其他控件和RecyclerView一起横向滑动,而RecyclerView自身滑动事件不响应。问题分析:1.HorizontalScrollView内嵌套RecyclerView,发现HorizontalScrollView不能横向滑动; 2.RecyclerView于...
2018-02-08 13:55:28 6076
原创 关于 targetSdkVersion=23 底层动态库报错: has text relocations
从 API 23 开始,共享对象将不得包含文本重定位。也就是说,代码必须按原样加载,不得对其进行修改。问题就是:当android studio的targetSdkVersion = 23时,之前能用的动态库在代用的时候会报错,错误信息包含has text relocations ....官方给出的解决方案:wiki.gentoo.org/wiki/Hardened/Textrels_Gui
2017-03-10 14:06:53 3165
转载 WaitForSingleObject&WaitForMultipleObjects
WaitForSingleObject#include "stdafx.h"#include #include using namespace std;DWORD WINAPI ThreadFun(PVOID par){ cout Sleep(3000); return 0;}int _tmain(int
2016-09-28 15:17:00 296
原创 NDK编译静态库不install的解决方案
NDK文件夹下 \build\core\definitions.mk 查找如下面这句话:module-class-is-installable = $(if $(NDK_MODULE_CLASS.$1.INSTALLABLE),$(true),$(false))找到后, 修改为:module-class-is-installable = $(if $(NDK_MODULE
2015-12-28 19:57:17 643
原创 android编码h264(一):使用x264编码yuv为h264数据的例子(软编码)
先说下简单流程: 1.camera回调nv21 yuv; 2.nv21转yuv420; 3.x264编码h264,回调回java层; 4.写文件,生成.h264文件; 5.使用vlc等播放器播放。android java层的代码比较简单,简单说下:这个demo启动会,surfaceView会显示Camera拍摄到的数据,Activity需要继承Surfa
2015-12-11 16:56:01 7017 9
原创 android编码h264(二):MediaCodec 硬编码 h264(硬编码)
本篇文章记录一下,android调用mediacodec编码camera回掉的YUV数据为h264的方法。 由于公司需要,软编码(X264)由于手机性能的瓶颈,已不能满足要求,所以决定使用硬编码。其实硬编码最早用过MediaRecord,但是不能直接得到h264数据,得先编成MP4,再从MP4里把H264的NALU取出来,感觉太绕了,所以当时抛弃了MediaRecord,选择了x
2015-12-10 23:16:52 21859 19
原创 NV21 to NV12(YUV420SP)
setPreviewFormat(ImageFormat.NV21)NV21 颜色空间排列 :YYYYYYYY VUVU在用MediaCodec编码的时候,如果设置颜色空间为YUV420SP,那么则需要转换一下,YUV420SP颜色排列顺序为:YYYYYYY UVUV多说一下,YUV420 是于NV12对应的,但是5.0一下的安卓手机支持这个预览颜色的不多则需要将VU顺序进行转
2015-12-02 12:11:15 15464 1
原创 MediaCodec 编码H264 编码一帧后dequeueOutputBuffer为-1的问题
在用android MediaCodec编码h264的时候,会遇到,dequeueOutputBuffer在成功获取到config帧(sps pps)及第一个I帧后,dequeueOutputBuffer然后结果一直为-1的情况,在我用的三星note3及小米3都是这样的,解决方案如下:关键在下面这个函数的第四个参数上,就是时间戳,这个参数一定要填写,可以类似的这么简单的算一下:
2015-12-01 17:50:53 15078 4
原创 pcm to g711
在CSDN传了例子,可以参考http://download.csdn.net/detail/ss182172633/9208785
2015-10-27 11:16:15 1318
原创 g711u g711a 格式相互转换
pcm to g711编码,资料很多,这里只说一下g711u转换为g711a的方法,很简单,如下:unsigned char * ulawtoalaw(unsigned char * ulawbuffer,int len){unsigned char * ulaw = ulawbuffer;unsigned char * alaw = new unsigned char[l
2015-10-24 12:13:43 7773
原创 webrtc_ns模块android手机音频处理
项目上要求对手机传输出去的音频进行降噪处理,网上查了查资料,发现webrtc里面有关于降噪的模块,开始对webrtc学习,ns模块算是一个开始吧。首先,需要将webrtc ns模块用android ndk编译为动态库,编译的方法网上很多,不详细说明了。webrtc ns模块的使用比较简单,分为三个部分:1.初始化 WebRtcNs_Create(&handle);
2015-10-24 11:57:39 3718 2
原创 win7下ndk环境搭建
1.首先安装cygwin。2.下载NDK,将NDK放在电脑某处。3. \cygwin64\home\Administrator 这个路径下找到.bash_profile文件,用UltraEdit打开后,在最后添加如下内容:NDK=/cygdrive/d/Android/android-ndk-r9d //声明一个叫NDK的变量,变量值为android-ndk的路径
2015-08-10 14:22:05 1514
TensorflowTTS fastspeech2 mbmelgan 中文模型 .tflite文件
2020-11-20
live555 vs2012工程
2015-10-24
webrtc源码
2015-10-24
libevent源码
2015-10-24
WPF Popup 遮挡其他软件 总是浮现在最上面,请解答呀
2014-05-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人