Guide on creating and including sound clips to be played by the i2s Speaker component. (#3718)

* Add files via upload

* Add files via upload

* Update audio_clips_for_i2s.rst

* Update audio_clips_for_i2s.rst

* Update audio_clips_for_i2s.rst

* Update index.rst

missing link to the speaker component (this page is well hidden!) and added the link to the guide.

* Update audio_clips_for_i2s.rst

Dots on i

* Update audio_clips_for_i2s.rst

updated links

* Update audio_clips_for_i2s.rst

xxd link for anything else but Linux...

* Update index.rst

links in this format are strange.

* Update audio_clips_for_i2s.rst

And again... links are weird.

* Update audio_clips_for_i2s.rst

---------

Co-authored-by: H. Árkosi Róbert <robreg@zsurob.hu>
This commit is contained in:
[NUT] 2024-03-28 08:37:40 +01:00 committed by GitHub
parent cdb3b5cad4
commit 67e5ba0c19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 60 additions and 0 deletions

View File

@ -92,4 +92,6 @@ Platforms
See Also
--------
- :doc:`/guides/audio_clips_for_i2s`
- :doc:`/components/speaker/i2s_audio`
- :ghedit:`Edit`

View File

@ -0,0 +1,58 @@
.. audio_clips_for_i2s:
Create audio clip files for use with I²S Speakers
=================================================
It is possible to create sound clips to include in your build to use with I²S speakers. No need for a media player component!
- Using `Audacity <https://github.com/audacity/audacity>`__, convert audio to WAV, mono, 16kHz, Unsigned 8bit PCM
.. figure:: /guides/images/save_as_wav.png
:alt: Audacity export dialog
:height: 200
:align: center
- Convert again, this time with `SOX <https://github.com/chirlu/sox>`__.
.. code-block:: console
sox startup.wav --bits 8 --encoding signed-integer --endian little startup_again.raw
- Now convert it into a hexadecimal string using `xxd <https://github.com/ckormanyos/xxd>`__ into a C++ file.
.. code-block:: console
xxd -i startup_again.raw startup.c
- The resulting file needs a modification in the start line:
Open in an editor and change
``unsigned char startup_again_raw[] = {…[SNIP]…}``
to
``std::vector<unsigned char> startup_raw = {…[SNIP]…}``.
Now you can rename the file to startup.h, put it inside the esphome configuration directory and put it in a include in your device config like this:
.. code-block:: yaml
esphome:
includes:
- startup.h
Now you can define using the audio clip using the following:
.. code-block:: yaml
- speaker.play:
id: speaker
data: !lambda return startup_raw;
Enjoy!
HowTo by [NUT].
See also
--------
- :doc:`/components/speaker/index`
- :doc:`/components/speaker/i2s_audio`
- :ghedit:`Edit`

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB