2020年3月アーカイブ

Keras CNN Sound Classify #4

Keras CNN で 音の分類 #4。update 2020.4.20

ディープラーニングで音声分類 のサンプルが出ていたので、試してみましたの #4です。
変更
1) 学習データを、変更しました。 by nishi 2020.4.17
2) sound-predict3-mobile-v2.py で、4096Hz 以上をブーストしました。 by nishi 2020.4.19
3) 学習データ毎のエポック数を 5 → 4 に変更。 by nishi 2020.4.20

 Keras CNN Sound Classify
で、オリジナルができたので、同じ要領で、今度は、
Keras MobileNet V2 を使って、同じ学習データ、テストデータを使って試してみました。

開発環境
OS: Windwos10
GPU: GeForece GTX 1050 4GB
Anaconda
Python3.6
TensorFlow 1.14.0 GPU
Keras 2.3.1

注1) TensorFlow 1.14.0 を使っているのは、 K210 の YOLO v2 等で、
使っているので、他意はありません。
注2)  Keras は、オリジナルを使っています。
tensorflow.python.keras を敢えて使っていません。

手順は、上記ページに従って行いました。

Sipeed MAix Bit with MIC Maixduino(Arduino) で マイクのお試し #2 です。

前回の、Sipeed MAix Bit with MIC Maixduino(Arduino) で マイクのお試し
では、 Arduino の loop() 処理の中から I2S の取り込みや、PC への Serial 送信だったので、
もしかしたら、 I2S の取りこぼしが出ていないか、心配でした。

今回は、I2S の DMA転送完了のイベント駆動での、I2S フレームの受信と、
別タスクでの、PC への Serial 通信を試してみました。

I2S のイベント受信のサンプルは、
github.com/kendryte/kendryte-standalone-demo/blob/develop/i2s_dma/main.c

マルチタスクのプログラムは、Maixduino(Arduino)  の中に、FreeRTOS が最初から入っているので、
それを利用します。

開発環境
OS: Windows10
Platform IO IDE(Visual Studio Code)
platforomio.ini
  platform = kendryte210
  board = sipeed-maix-bit-mic
  framework = arduino

※ UART1 に、別途 USB-Serial (FT232RL) を付けます。
Maix-Bit silk  |  k210 IO  |  USB-Serial (FT232RL)
    15  --  IO15 (tx)  -->  Rx
    17  --  IO17 (rx)  -->  Tx
     GND                  -->  GND
注)上記以外は、オープン
  USB-Serial VCC は結線しません。

Sipeed MAix Bit with MIC  Maixduino(Arduino) で マイクのお試しです。

Sipeed MAix Bit with MIC MaixPy で マイクのお試し #3
で、Python での限界を感じたので、今回は、Bit 側だけ、Maixduino(Arduino) で、
プログラムを書いてみました。

I2S のプログラムガイドは、https://github.com/kendryte/kendryte-doc-standalone-programming-guide/blob/master/en/I2S.md

開発環境
OS: Windows10
Platform IO IDE(Visual Studio Code)
platforomio.ini
  platform = kendryte210
  board = sipeed-maix-bit-mic
  framework = arduino

※ UART1 に、別途 USB-Serial (FT232RL) を付けます。
Maix-Bit silk  |  k210 IO  |  USB-Serial (FT232RL)
    15  --  IO15 (tx)  -->  Rx
    17  --  IO17 (rx)  -->  Tx
     GND                  -->  GND
注)上記以外は、オープン
  USB-Serial VCC は結線しません。

Sipeed MAix Bit with MIC MaixPy で マイクのお試し #3

Sipeed MAix Bit with MIC MaixPy で マイクのお試し #3 です。

前回、Sipeed MAix Bit with MIC MaixPy #2 で
バイナリーのまま、音データを送信してみましたが、Serial通信でのデータ抜けが結構ありました。
そこで、今回は、 #2 のプログラムにハンド・シェイクを組み込んでみました。

プロトコル
PC側                     |           Bit側
1) b's' 送信       ------>        b's' が来たら、音データ(1 CHUNK*2 バイト)をバイナリ送信
                        <------          音データ(バイナリ) + '\r\n' 送信
2) 最後が、'\r\n'
で無ければ、  b'r' ---->        b'r' であれば、先に送ったデータを再送
                        <------          前の音データ(バイナリ) + '\r\n' を再送
3) 最後が、'\r\n'
であれば、     b's' ---->        b's' であれば、次のデータを送信
                        <------          音データ(バイナリ) + '\r\n'  送信

この様な簡単なプロトコルです。
Serial 通信は、多分、全2重なので、送信と受信が同時に行えます。

Sipeed MAix Bit with MIC MaixPy で マイクのお試し #2

Sipeed MAix Bit with MIC MaixPy で マイクのお試し #2 です。

前回、Sipeed MAix Bit with MIC MaixPy  で
UART0 から、UART1に替えて、別途 USB-Serial (FT232RL) を付けて試してみました。

※ UART1 に、別途 USB-Serial (FT232RL) を付ける。
Maix-Bit silk  |  k210 IO  |  USB-Serial (FT232RL)
    15  --  IO15 (tx)  -->  Rx
    17  --  IO17 (rx)  -->  Tx
     GND                  -->  GND
注)上記以外は、オープン
  USB-Serial VCC は結線しません。

Serialの速度は、460800 まで上げる事は出来ましたが、PCから出てくる音は、
余り変わりないので、今回は、Bit の I2S で取り込んだRAW データを ASCII に変換する事なく、
バイナリーのまま PCへ送ってみる事にしました。


よりシンプルにを基本に、データ長は固定長なので、簡単なアルゴリズムで改造してみました。

アルゴリズム
送りて(Bit):
  音データ(16bit * Sample Point のバイナリデータ) の後ろに、\r\n の 2バイトを付加する。
  CHUNK*2+2 の固定長データ

受けて(Windows10 PC)
  ・Serial.read() で、受信データ長=CHUNK*2+2 で受信する。
    受信したデータの末尾に、\r\n があれば、 OKデータとします。
  ・OK でなければ、
    Serial.readline() で次の \r\n 迄、受信して、上記処理へ戻ります。
  ・OKデータ であれば、マイクへ末尾の \r\n を除いたデータを出力します。
    最初の処理へ戻ります。

Sipeed MAix Bit with MIC MaixPy で マイクのお試し

Sipeed MAix Bit with MIC MaixPy  で マイク入力の確認が出来たので、
PC へ Serial で送れないか試してみました。

PC: Windows10

Sipeed MAix Bit with MIC を PC に USB接続して、TTL-Serialでデータの受信をします。

PC 側は、Python で serial で RAWデータを受信して、pyaudio.PyAudio() で、
PCのスピーカーへ音を出してみます。

Sipeed MAix MaixPy で FFT と マイク入力の確認

Sipeed MAix Bit with MIC MaixPy  で FFT と マイク入力の確認をしてみました。

Sipeed MAix Bit with MIC は、マイク と FFT(Fast Fourier Transformation) が内臓されているとの事なので、
それの確認のサンプルプログラムが、出ていたので早速確認してみました。

要は、Sipeed MAix Bit with MIC の内臓マイクから音を拾って、それを、内臓 FFT でフーリエ変換をして、音スペクトグラムを、LCD に表示します。

FFTに関しては、FFTの基礎と音響・振動測定への応用
が参考になります。

テスト環境
OS : Windows10
MaixPy(MicroPython) : maixpy_v0.3.2_no_lvgl.bin または、 maixpy_v0.3.2_full.bin

このアーカイブについて

このページには、2020年3月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2020年1月です。

次のアーカイブは2020年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ