mirror of
https://github.com/esphome/esphome-docs.git
synced 2024-12-26 17:27:47 +01:00
67e5ba0c19
* 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>
59 lines
1.6 KiB
ReStructuredText
59 lines
1.6 KiB
ReStructuredText
.. 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`
|