Skocz do zawartości

Regulacja siły głosu w TTS program espeak-NG.


99teki

Pomocna odpowiedź

- 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

- 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

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ę »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.