mozilla语音识别框架 deepspeech 初探

安装

pip3 install deepspeech-gpu

运行

deepspeech output_model.pb my_audio_file.wav alphabet.txt

deepspeech output_graph.pb LDC93S1.wav alphabet.txt

报错

2017-12-01 09:35:28.879923: F tensorflow/core/platform/cpu_feature_guard.cc:35] The TensorFlow library was compiled to use AVX2 instructions, but these aren't available on your machine.
Aborted (core dumped)

issue 说明 :

https://github.com/mozilla/DeepSpeech/issues/1023

lscpu

Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz

CPU 只有 avx 指令集,没有 avx2

换到 阿里云的机器,CPU版本是 E5-2682 .可以用

pip3 install deepspeech

deepspeech output_graph.pb LDC93S1.wav alphabet.txt

output_graph.pb 下载地址

wget  https://s3.amazonaws.com/deep-speech/output_graph.pb

LDC93S1.wav  在

https://github.com/mozilla/DeepSpeech/tree/master/data/smoke_test

自己录了几段都不认,对音频格式了解不多,留个坑以后填。

alphabet.txt 在

wget https://raw.githubusercontent.com/mozilla/DeepSpeech/master/data/alphabet.txt

识别的结果:

(CPU,5.394s) shehadyeducksoingrecywachworallyear

(GPU,1.286s) she had ye duck so ingrecy wachwor all year

不知道为毛线,CPU版没空格,GPU版有。

原文对照:

She had your dark suit in greasy wash water all year.

TensorFlow Lite 初探

目录位置在

tensorflow/contrib/lite/java/demo

下载训练好的model

https://storage.googleapis.com/download.tensorflow.org/models/tflite/mobilenet_v1_224_android_quant_2017_11_08.zip

解压后放到这里

tensorflow/contrib/lite/java/demo/app/src/main/assets/

中文版lables:  TensorFlow Demo labels 文件中文版(汉化进行中)

build 的时候,

gradle 版本提示需要 3.5 ,当前是 3.3

升级,不带  ./ 可能报 gradlew: command not found

./gradlew build

Project Structure -> Project

修改  Gradle version 为  3.5

再去build : OK

之前TensorFlow Android 编译完体积 50m ,Lite 版本 编译完 7m多。

图片的语义分割实战

作为一个小白,当然是找个demo 跑一跑了。

优先选择熟悉的 tensorflow ,感谢 fly51fly 老师微博推荐各种好玩的研究。

第一站:Mask_RCNN

git clone https://github.com//matterport/Mask_RCNN

wget https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5

需要 jupyter 环境

sudo pip3 install jupyter notebook
ipython
from notebook.auth import passwd; passwd()

需要设置两次密码,
得到 ‘sha1:———————–‘,复制该字符串,之后需要用到

jupyter notebook --generate-config

#将会在home目录下生成一个隐藏文件夹.jupyter,该文件夹中有一个jupyter的配置文件;

vim  ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip = '*'
c.NotebookApp.password = u' sha1:-----' #这里就是上面的字符串
c.NotebookApp.port = 8000 # 这里的端口可以自己定义,是之后连接的时候需要设定的
安装 coco,据说下面这个修复了一个 python3 的bug。
https://github.com/waleedka/coco

tensorflow 需要升级到 1.3 +

sudo pip3 install –upgrade tensorflow

识别效果

模特的微博:https://weibo.com/u/2594299172

TensorFlow Android demo 调试记录 ( macOS )

特别注意:全程请保持网络能正常访问 google

GITHUB:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
  1. 准备  android 5.1  版本以上的 手机 低版本的不支持。
  2. 下载 tensorflow 源码
    git clone --recurse-submodules https://github.com/tensorflow/tensorflow
    git clone git@github.com:tensorflow/tensorflow.git
  3. 用 android studio 打开
  4. 试着 run了一下 出现错误
    Error:Execution failed for task ':buildNativeBazel'.
    
    > A problem occurred starting process 'command '/usr/local/bin/bazel''
    1. 需要安装  bazel  ( 我在 mac 上开发的。 ubuntu 或者window 参考  https://docs.bazel.build/versions/master/install-os-x.html
      brew cask install caskroom/versions/java8
      brew install bazel
    2. 需要安装 NDK
      android studio : file -> project structure -> SDK location    最后的  Android NDK location 如果为空 ,点下面的 download  下载,并解压。将路径填到上面的框里。

      https://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip
  5. 到tensorflow 工作目录 编译(需要下载包)
  6. bazel build -c opt //tensorflow/examples/android:tensorflow_demo
  7. 出错误  ,原因是 tensorflow 工作目录里没有 andorid sdk
  8. This build requires an Android SDK. Please add the android_sdk_repository rule to your WORKSPACE.
  9. clang: error: unknown argument: '-m<platform_for_version_min>-version-min=11.1'

    打开 tensorflow 根目录下的 WORKSPACE 编辑  sdk 和 ndk

  10. 又报错误
    C++ compilation of rule '@protobuf_archive//:protobuf' failed (Exit 1).
    
    fatal error: 'stdlib.h' file not found
    
    #include <stdlib.h>

    原因是 git 时没有加   –recurse-submodules 参数  。用于获取 TesorFlow 依赖的 protobuf 库

  11. 依然还有错误,一堆 .h 文件找不到。查了些资料,说 NDK不能超过 r12b ,重新下载个 r12b , 替换掉默认的。( tensorflow 文档推荐的是 14b,我没有试应该也可以。我之前下的是 16)
    https://dl.google.com/android/repository/android-ndk-r12b-darwin-x86_64.zip
  12. OK成功
    Target //tensorflow/examples/android:tensorflow_demo up-to-date:
    
     bazel-bin/tensorflow/examples/android/tensorflow_demo_deploy.jar
    
     bazel-bin/tensorflow/examples/android/tensorflow_demo_unsigned.apk
    
     bazel-bin/tensorflow/examples/android/tensorflow_demo.apk
    
    INFO: Elapsed time: 861.504s, Critical Path: 99.12s
  13. 编译完的 apk 在一个非常诡异的位置
    //tensorflow/bazel-out/darwin_x86_64-opt/bin/tensorflow/examples/android/tensorflow_demo.apk
    adb install -r  ./bazel-out/darwin_x86_64-opt/bin/tensorflow/examples/android/tensorflow_demo.apk

    mac安装 adb

    brew cask install android-platform-tools

     

  14. 可能出现如下错误
  15. Gradle sync failed: Cause: error in opening zip file
     Consult IDE log for more details (Help | Show Log) (451ms)

     

    将 gradle-wrapper.properties  中

    distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

    替换成

    distributionUrl=http\://services.gradle.org/distributions/gradle-4.1-all.zip

    出错误Xcode version must be specified to use an Apple CROSSTOOL

bazel clean --expunge

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

sudo xcodebuild -license

  1. 附,解决最后问题的一篇文章,顺带致谢。
    http://blog.csdn.net/wojiaopanpan/article/details/77488056

Lite 版 移步