Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Text2Speech Plugin #4622 #4623

Closed
wants to merge 7 commits into from
Closed

Conversation

FraGoTe
Copy link
Contributor

@FraGoTe FraGoTe commented Feb 28, 2023

This closes #4622

@AngelFQC
Copy link
Member

Remove the .DS_Store files

plugin/text2speech/Text2SpeechPlugin.php Outdated Show resolved Hide resolved
plugin/ai_helper/tool/learnpath.php Outdated Show resolved Hide resolved
@FraGoTe
Copy link
Contributor Author

FraGoTe commented Feb 28, 2023

@AngelFQC acabo de hacer los cambios que solicitaste, gracias por el code review!

@ywarnier
Copy link
Member

ywarnier commented Mar 1, 2023

Ya entendí, haces el proceso de TTS al momento de la creación del learning path por el plugin AI Helper. Está bien, pero sería mucho mejor si pudieras ofrecer la posibilidad a alguien de hacerlo luego de la generación. En particular en lp_controller.php?action=add_audio, que es una página dedicada al audio y tiene varias secciones de fuentes distintas.

El problema de hacerlo únicamente al momento de la generación de la lección es que todavía consideramos que AI Helper solo hará una pre-generación que tiene que ser validada/corregida por el profesor. Por eso, generar el audio sin posibilidad de volver a hacer el proceso es un problema, porque probablemente 50% del tiempo el profesor va a cambiar ligeramente el texto antes de validar (y nos quedaríamos con un audio que no corresponde).

Puedes encontrar el formulario normal de add_audio aquí: main/lp/lp_add_audio.php y introducir un check sobre la existencia y activación del plugin text2speech antes de mostrar una sección más para la generación de audio.

Observo que no veo de ningún lado una elección de idiomas. Supongo que por ahora quedará así (entiendo que se necesita otro modelo y probablemente otra instancia de servidor TTS para generar el audio en otro idioma), pero hay oportunidades de mejora por este lado (por ejemplo permitiendo la configuración de distintas URLs y API keys según un idioma).

@ywarnier
Copy link
Member

ywarnier commented Mar 1, 2023

Quedan dos archivos .DS_STORE, todavía ;-)

@ywarnier
Copy link
Member

ywarnier commented Mar 1, 2023

Sugeencia de README.md (que cambiará si agregas el formulario):

Text2Speech
=

This plugin adds the possibility (once setup with 3rd party account) to add 
speech to learning paths by converting text in the learning paths to audio 
files attached to each learning path item.

This plugin requires the *installation and configuration* of the TTS software
and data from Mozilla, which might be deterring to most users (sorry about 
that). Please refer to https://github.com/mozilla/TTS/wiki on how to download,
install and configure your own TTS server.

It also requires the "AI Helper" plugin to be installed, enabled and properly
configured, as it connects to the learning path auto-generation feature to add
audio to it.

Once your TTS server is available, get a URL to connect to it, install and 
enable the plugin, give it an API key (if any), a host (could be localhost)
and enable the plugin in the learning paths, then create a new learning 
path using the AI Helper plugin in the learning path tool. You should now 
get additional speech for every document in your learning path. 

@ywarnier
Copy link
Member

ywarnier commented Mar 1, 2023

Other suggestion: Add this to lang/english.php:

$strings['api_name'] = 'API';
$strings['api_key'] = 'API key';
$strings['url'] = 'URL of your Text2Speech server';
$strings['tool_lp_enable'] = 'Enable into the learning path';

spanish.php

$strings['api_name'] = 'API';
$strings['api_key'] = 'Clave API';
$strings['url'] = 'URL del servidor Text2Speech';
$strings['tool_lp_enable'] = 'Activar en las lecciones';

french.php

$strings['api_name'] = 'API';
$strings['api_key'] = 'Clef API';
$strings['url'] = 'URL du serveur de Text2Speech';
$strings['tool_lp_enable'] = 'Activer dans les parcours';

$resource = fopen($filePath, 'w');

$client = new GuzzleHttp\Client();
$client->get($this->url.'?api_key='.urlencode($this->apiKey).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

El api_key es necesario? Cómo lo genero? En mi TTS que tengo no pide api_key y me genera los audios por el api solo con el texto
🤔

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creo que no es necesario y que lo pone solo para abrirlo a la posibilidad de tener uno a futuro (para este u otro servicio)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

exacto en este momento no es necesario pero lo dejo abierto por si se necesita en algún otro servicio.

@FraGoTe
Copy link
Contributor Author

FraGoTe commented Mar 2, 2023

Ya entendí, haces el proceso de TTS al momento de la creación del learning path por el plugin AI Helper. Está bien, pero sería mucho mejor si pudieras ofrecer la posibilidad a alguien de hacerlo luego de la generación. En particular en lp_controller.php?action=add_audio, que es una página dedicada al audio y tiene varias secciones de fuentes distintas.

El problema de hacerlo únicamente al momento de la generación de la lección es que todavía consideramos que AI Helper solo hará una pre-generación que tiene que ser validada/corregida por el profesor. Por eso, generar el audio sin posibilidad de volver a hacer el proceso es un problema, porque probablemente 50% del tiempo el profesor va a cambiar ligeramente el texto antes de validar (y nos quedaríamos con un audio que no corresponde).

Puedes encontrar el formulario normal de add_audio aquí: main/lp/lp_add_audio.php y introducir un check sobre la existencia y activación del plugin text2speech antes de mostrar una sección más para la generación de audio.

Observo que no veo de ningún lado una elección de idiomas. Supongo que por ahora quedará así (entiendo que se necesita otro modelo y probablemente otra instancia de servidor TTS para generar el audio en otro idioma), pero hay oportunidades de mejora por este lado (por ejemplo permitiendo la configuración de distintas URLs y API keys según un idioma).

Si por lo último que comentas en el caso de mozilla TTS se despliega un modelo por cada idioma, se podría poner algo delante para ir al idioma que se necesite por este momento podemos dejarlo así y ya despues agregar el soporte para multiidioma lo cual creo que es va a tener que ser algo manual, ya que por ejemplo en el LP tendrían que seleccionar el idioma en el que quieren el audio.

@ywarnier
Copy link
Member

ywarnier commented Mar 2, 2023

Si por lo último que comentas en el caso de mozilla TTS se despliega un modelo por cada idioma, se podría poner algo delante para ir al idioma que se necesite por este momento podemos dejarlo así y ya despues agregar el soporte para multiidioma lo cual creo que es va a tener que ser algo manual, ya que por ejemplo en el LP tendrían que seleccionar el idioma en el que quieren el audio.

Es más fácil que esto : podemos usar el idioma del curso en el cual el LP está ubicado. Esta parte no me preocupa. Es más saber si hay un servidor TTS que soporte varios modelos a la vez o si se van a tener que lanzar varios servidores TTS, uno para cada modelo/idioma. Pero bueno, iremos descubriendo esto con el tiempo

@ywarnier ywarnier mentioned this pull request Mar 11, 2023
@ywarnier
Copy link
Member

Closing this PR. See notes in #4629 for explicit reasons.

@ywarnier ywarnier closed this Mar 11, 2023
@ywarnier
Copy link
Member

This doesn't diminish our gratitude for your contribution to Chamilo (as the PR based on yours will remain open for a possible later integration)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants