99teki Napisano 23 września Udostępnij Napisano 23 września - poniżej program w którym nie potrafię zmienić wyjścia espeak z i2s na głośność! - jak ściągamy mp3 z Url to schemat jest taki UrlStream -> copy-> EncodedAudioStream -> Volume -> I2S. - proszę o pomoc bo po powodzi klepki uciekły. /** * @file espeak-arduino-pl.ino * @author Phil Schatzmann * @brief Arduino C++ API - minimum example. The espeak-ng-data is stored on in * progmem with the arduino-posix-fs library and we output audio to I2S with the * help of the AudioTools library. * We use Polish instead of English! * @version 0.1 * @date 2022-10-27 * * @copyright Copyright (c) 2022 */ // UrlStream -copy-> EncodedAudioStream -> Volume -> I2S #include "AudioTools.h" // v 2.0.0 https://github.com/pschatzmann/arduino-audio-tools //#include "AudioLibs/AudioKit.h" // https://github.com/pschatzmann/arduino-audiokit #include "FileSystems.h" // https://github.com/pschatzmann/arduino-posix-fs #include "espeak.h" I2SStream i2s; // or replace with AudioKitStream for AudioKit VolumeStream volume(i2s); //VolumeMeter out; // 2 const bool load_english = false; ESpeak espeak(i2s, load_english); StreamCopy copier(volume, i2s); // StreamCopy copier(out, i2s); // 2 // -------------------------------------------------- setup --------------------------------- void setup() { Serial.begin(115200); file_systems::FSLogger.begin(file_systems::FSInfo, Serial); // ----------------------- tylko dla LilyGo T-embed ----------------------- pinMode(46, OUTPUT); digitalWrite(46, HIGH); // add foreign language configuration files espeak.add("/mem/data/pl_dict", espeak_ng_data_pl_dict,espeak_ng_data_pl_dict_len); espeak.add("/mem/data/lang/pl", espeak_ng_data_lang_zlw_pl, espeak_ng_data_lang_zlw_pl_len); // setup espeak espeak.begin(); espeak.setVoice("pl"); // setup output auto espeak_info = espeak.audioInfo(); // audio_info espeak_info = espeak_get_audio_info(); auto cfg = i2s.defaultConfig(); cfg.channels = espeak_info.channels; // 1 cfg.sample_rate = espeak_info.sample_rate; // 22050 cfg.bits_per_sample = espeak_info.bits_per_sample; // 16 i2s.begin(cfg); //espeak_set_audio_output(&i2s); // 3 // set initial volume volume.begin(cfg); // we need to provide the bits_per_sample and channels volume.setVolume(0.0); // } // --------------------------------------------------- loop ------------------------------- void loop() { espeak.say("Dzień dobry !"); delay(1000); espeak.say("Pogoda wspaniała "); delay(5000); copier.copy(); } Link do komentarza Share on other sites More sharing options...
99teki 23 września Autor tematu Udostępnij 23 września - należy wprowadzić poprawki, skala logarytmiczna nie działa. - dodanie głosu Alicja , no chyba ja jestem głuchy ESpeak espeak(volume, load_english); .. volume.setVolume(0.5); // volume! Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »