Giter VIP home page Giter VIP logo

rakwireless-audio-library's Introduction

RAKstar RAKWireless Build Status

RAK-Whirls

RAKwireless Audio library

Introduction

RAKwireless Audio library is designed for RAK audio module and kit solutions. This library provides customer with abundant examples and solutions on audio field. User can use them for any scene

  • mono/stereo audio mode
  • play music
  • record voice
  • voice recognition
  • noise collector
  • PDM and analog microphone
  • DSPG module for audio data process

Elements

stack (2)

As shown above, audio solutions includes below parts:

  • RAK18003: Interposer Board, as a signal switch for wiscore, microphone, amplifier
  • RAK18030: 20-20kHz Microphone
  • RAK18031:100-10kHz Microphone
  • RAK18032: Ultrasonic Microphone
  • RAK18033: Stereo Mic Header Board
  • RAK18040: Analog Mic to I2S
  • RAK18060: 5.6W Stereo Amplifier
  • RAK18061: 5.6W Amplifier
  • RAK18080: DSPG board, audio process board

At the same time we will release some audio kit

  • WisBlock Microphone Interposer Kit
  • WisBlock Speaker Amplifier SD Kit
  • WisBlock Remote Microphone Kit
  • WisBlock Stereo Microphone Kit
  • Amplifier Microphone & SD Kit
  • WisBlock Voice Processing Kit
  • WisBlock Voice Processing Speaker Kit
  • WisBlock Audio Accessories

All elements can be used separately or together. However, there are two points need to note:

  • They all use IO connector
  • We advise to use them together and be sure the microphone placed on the top of stack.

Installation

BSP Update

Please update BSP part to the last version, which will support basic driver.

Rakwireless Audio library

Then install audio library, which contains other part of driver, like amplifier, DSPG. And includes all examples and solutions. Because of the technical problem, it is not merged in IDE now. Please download ZIP from: https://github.com/RAKWireless/RAKwireless-Audio-library And then install manually.

But if you use Arduino 2.0 released version, you can install it in library manager.

Examples & Solutions

The examples can be separated 4 parts. The test code is just for test and can be ingnored.

  • Audio Graph

    Audio graph will show the audio wave with rawdata from microphone, including analog or digital. We have supported several kinds of graph, here we will show the difference by two examples

    • Original Data Graph

      Here we use RAK4631+RAK18030 to show the digital wave, and same as the analog.

    • FFT Graph

      The "Fast Fourier Transform" (FFT) is an important measurement method in the science of audio and acoustics measurement. It converts a signal into individual spectral components and thereby provides frequency information about the signal. FFTs are used for fault analysis, quality control, and condition monitoring of machines or systems. This article explains how an FFT works, the relevant parameters and their effects on the measurement result.

      Strictly speaking, the FFT is an optimized algorithm for the implementation of the "Discrete Fourier Transformation" (DFT). A signal is sampled over a period of time and divided into its frequency components. These components are single sinusoidal oscillations at distinct frequencies each with their own amplitude and phase. This transformation is illustrated in the following diagram. Over the time period measured, the signal contains 3 distinct dominant frequencies.

    ​ Below is what we get with RAK4631+RAK18032, and of course you can use other wiscore and microphone.

  • Aduio Alarm

    We combine the wireless and audio alarm. When the audio rawdata value reach to a threshold, it will report a alarm by LoRaWAN, WIFI. Or you can just use the local alarm. You can modify the threshold in code.

    • With LoRa

      This example use RAK4631+RAK18003+RAK18030, and based on LoRaWAN OTAA. After join the network, the PDM will listen and report a alarm when triggered.

      Loraalarm2

    • With WIFI

      This example use RAK11200+RAK18003+RAK18030, and based on WIFI. After connection, the PDM will listen and report a alarm to remote server with TCP when triggered.

      wifi2

    • Local

      When use in local, it is just a alarm with a buzzer.

  • Voice Recognition

    The Cyberon Software provides the ability of RAKwireless customers to enable voice control within their WisBlock System. The Cyberon software allows for the detection of specified voice triggers or commands. These commands are stored in a file which the customer links in when building their code.

    Cyberon provides a set of tools to create these models. When the software is provided to customers RAK will provide one (or more) “standard” models to be used by makers and for evaluation of commercial customers. Currently the Cyberon Software can run on two different “platforms” within the WisBlock Audio:

    1. The WisCore (RAK11200 (ESP), RAK11310 (RP2040), RAK4631 (nRF52840))
    2. The RAK18080 (DSPg DBM10L).

    We provide three standard mode now as below, first and second is for local device control and third is for LoRaWAN node.

    Function Trigger Commands
    Music “Hey RAK Star” “Play Music”, “Stop Music”, “Previous Song”, “Next song”, “Volume Up”, “Volume Down”, “Stop”, “Pause”, “Next”, “Resume”, “Previous”, “Volume Up”, “Volume Down”, “Increase Volume”, “Decrease Volume”
    Light Contrrol “Hey RAK Star” "Turn Lights on”, “Turn Lights off”, “Lights on”, “Lights off”, “Turn lights up”, “Turn lights down”, “Dim lights”, “Brighten lights”, “Lights Red”, “Lights Blue”, “Lights Green”, “Lights Yellow”, “Lights Orange”, “Lights Pink”
    WisDM “Hey RAK Cloud“ “Connect”, “Disconnect”, “Report Location”, “Get Status”, “Report Battery“,“Report Environment”, “Reset”
    • WisCore

      • WisDM

        This examples use RAK4631+RAK18003+RAK18030. When say "Connect", it will connect to the lora server, and of course, you need to make some configuration, like DEVEUI, APPEUI... If you want to use TTN, same as well.

        WisDM

      • RGB

        This example use RAK19001+RAK4631+RAK18003+RAK14001+RAK18030. When say "Turn Lights on", the RGB will on. And you can test other commands, like “Lights Pink”, it will be pink.

    • DSPG

      • Music

        This example use RAK18030/1/2+RAK18003+RAK18060+RAK18080+RAK11200.When say the trigger words wakes up the WisCore then say command words it will print the recognized command and ID number by serial port.

  • Play & Record

    Because of the limitation of hardware, we only support record/play WAV file via SD card on RAK11200.

    • Record to SD

    • note:This example need use the battery power for WisBase.

      This example use RAK11200+RAK18003+RAK18030+SD card. And you can modify the parameter, like frequence, channel or date bit.

      Then you will find the record file in the SD card.

    • Play from SD

    This example use RAK11200+RAK18003+RAK18060+Speaker+SD card. And first store the WAV file in SD card and modify the name to "test".

    Then download the example and play. It can detect the different format of WAV in the SD card and play "test.wav".

    play3

How to general header from WAV

First you need put your WAV file with the WAVconvert.py in the same folder.

Second, run the CMD console program.

Third, enter the "python ./WAVconvert.py" command and run .If your computer not installed the Python environment you can download the python by this link:https://www.python.org/downloads/.

After convert done, the converted .h file name is the same as your WAV name.

Then, open the .h file and copy the sound buffer to replace the example's sound buffer.

rakwireless-audio-library's People

Contributors

nerodu avatar beegee-tokyo avatar geoffr98 avatar mcmchris avatar

Stargazers

Nick Romans avatar

Watchers

 avatar James Cloos avatar Phoenix Eve Aspacio avatar Todor Velev avatar  avatar

Forkers

mcmchris geoffrak

rakwireless-audio-library's Issues

PlatformIO cannot find PDM.h

Hardware: RAK11200+RAK18032
Software: VSCode, PlatformIO
PC: Macbook Pro 2021 (14inch) M1

My platformio.ini
image

Build Image
image
image

I can run correctly in Arduino, but failed to build in PlatformIO

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.