开发
添加tensorflow的核心依赖
implementation 'org.tensorflow:tensorflow-lite-task-audio:0.4.0'
将训练模型放到main/assets文件夹下
在build.gradle中配置
因为打包时tflite文件可能会被压缩,所以需要配置如下
buildFeatures {
viewBinding true
}
androidResources {
noCompress 'tflite'
}
添加音频录取权限
<uses-permission android:name="android.permission.RECORD_AUDIO" />
读取模型
// Create the classifier and required supporting objects
classifier = AudioClassifier.createFromFileAndOptions(context, currentModel, options)
创建TensorAudio
tensorAudio = classifier.createInputTensorAudio()
创建AudioRecord
recorder = classifier.createAudioRecord()
不断获取AudioRecord的数据
tensorAudio.load(recorder)
进行数据分析
val output: MutableList = classifier.classify(tensorAudio)
获取最终的结果
listener.onResult(output[0].categories, inferenceTime)
通过回调获取数据
项目Demo
模型训练
使用 YAMNet 进行声音分类