looking to hire an ESP32 Python & C programmer to help me to expose ESP32 I2S exiting C driver to ESP32 Python (LoBo ver

C programming, build, interpreter/VM.
Target audience: MicroPython Developers.
Post Reply
Posts: 2
Joined: Wed Dec 20, 2017 2:57 pm

looking to hire an ESP32 Python & C programmer to help me to expose ESP32 I2S exiting C driver to ESP32 Python (LoBo ver

Post by nissim » Wed Oct 03, 2018 4:56 am

I am looking to hire an ESP32 Python & C programmer to help me to expose ESP32 I2S exiting C driver to ESP32 Python (LoBo version).
There is an existing working sample in C to a firmware interface for ESP32 I2S for reading Microphone by I2S ICS-43434 IC and play using I2S MAX98357A IC.

The target is exposed from C lib to Python to send audio to Google speech recognition and Google text to speech from ESP32.
The development environment must run as Python from https://github.com/loboris/MicroPython_ESP32_psRAM_LoBo
If you have an experience on ESP32 MicroPython_ESP32_psRAM_LoBo Python please reply my email nissim@telnt.com
And call my Skype nissim.test
The work is fixed price, milestone-based and payment will be as showing milestone below,
We will provide the hardware for that:
1. Expose to LoBO Python the ESP32-IDE /MicroPython/Tools/esp-idf/components/driver/include/driver/I2S.H and I2S.C by integrating them in machine module so dir(machine) will show the I2S interface and all commands to set I2S for recording and playing using the ESP32 DMA. With test Python app showing that all I2S in machine.I2S module is working. No new make file will be created, only add code to machine lib module.
2. Use the above machine.I2S to record and play to a wav file using a digital mic on I2S ICS-43434 IC and play wav using MAX98357A IC. With test Python app showing that wav and playing are working from random files, as play("test.wav") and record ("rec.wav") both must work on the same time. Also support for Flak encoding, so if test.wav is Flak file it will be played ok. If a command record_flak ("rec_flak.wav") the rec_flak.wav will be flak file.
4. Doing above but record and play from ram, with Flak encoding as needed by Google SR AND TTS. See https://cloud.google.com/speech-to-text/docs/encoding.
With test Python app demo it working.
5. Use ram Flak Ram recoding to do SR to get the recognized the Mic audio, as text returns from Google back to ESP32, modify the return text with meaningful information and send to be played by Google TTS. Like Siri. With ESP32.
Replace the button function By voice keyword recognized as the gate to SR.
All from Python As:
1. You Say "Lovey’s", recorded to Ram in a loop all the time. A lower audio level is a mark to send a chunk of 1 sec ("Lovey’s") data to Google SR after flak encoding. Room normal audio level must monitor all the time, in a separate multitasking way.
2. Wait get recognize " Lovy's as return text, if not go to stage 1
3. Play TTS "Yes"
4. You Say to Mic I2S ICS-43434 “What is the baby temperature now?”
5. Get back the text in ESP32 Python “What is the baby temperature now”
6. ESP32 Send to TTS “The temperature now is 30 degree”
7. The return wav or Flak been played to using MAX98357A over I2S
8. Loop command can be continued until will be no command for 30 sec, then the keyword "Lovey’s", must say again.
6. So, I believe to expose I2S code from ESP32 C to Python will not be a big work.
a. Google API use wav Audio Encoding name: FLAC Free Lossless Audio Codec 16-bit or 24-bit required for streams.
b. So, FLAC can be done in C or Python. But interface must be from Python. See https://goo.gl/mtrwVN
7. Maybe this is a good source for FLAC in C https://goo.gl/cCYFTh
Contact: Nissim Zur nissim@telnt.com Skype: nissim.test

Post Reply