Contexto
Durante esta actividad crearemos un audio a partir de texto (text to
speech) haciendo uso de la API “Text-to-speech” de OpenAI, una vez
obtenido el audio haremos uso de una de las herramientas básicas de
efectos de audio la cual es la generación de eco.
El eco es en sí una forma en la que se retrasan las ondas de audio, es
decir que se mueven un poco hacia la derecha para que las señales de
audio obtengan este característico “delay”.
Actividad
Creación del audio (Python)
Durante esta primer fase del proceso es necesario crear un audio
mediante la API de Text-to-speech de OpenAI, a continuación se muestra
el código creado en python:
Una vez extraido el audio, procedemos a realizar las modificaciones
necesarias en R…
Modificación del audio (R)
library(signal)
library(audio)
library(tuneR)
Pirmero debemos importar el audio generado con AI y lo ocnvertimos en
un formato que podamos manipular
file_path <- "speech_equipo.mp3"
audio_data <- readMP3(file_path)
y <- audio_data@left
Fs <- audio_data@samp.rate
Audio
A continuación establecemos los parámetros del eco y lo generamos, en
este caso con 0.25 segundos de delay y procedemos a generaro con las
funciones
alpha <- 0.9
D <- 0.25 * Fs
echo <- numeric(length(y) + D)
echo[1:length(y)] <- y
echo[(D+1):(D+length(y))] <- alpha * y
Finalmente sumamos el audio original y el eco que creamos y guardaoms
el resultado como un nuevo audio
x <- y + echo[1:length(y)]
new_audio <- Wave(x, samp.rate = Fs)
#output_file <- "speech_equipo_with_echo1.wav"
#writeWave(new_audio, filename = output_file)
Audio
Es así como concluimos este proceso, con un nuevo audio que contiene
cierto delay en sus ondas, causando el efecto de eco.
LS0tDQp0aXRsZTogIkF1ZGlvX0VRVUlQTyINCmF1dGhvcjogIkZsb3IgZGVsIENhcm1lbiAtIEx1aXMgRGF2aWQiDQpkYXRlOiAiMjAyNC0wNC0yMSINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgY29kZV9kb3dubG9hZDogVFJVRQ0KICAgIHRoZW1lOiBzaW1wbGV4DQotLS0NCiFbXShDOlxcVXNlcnNcXEx1aXNEXFxEb2N1bWVudHNcXENvbmNlbnRyYWNpw7NuXFxNT0RVTE8gNFxcZWNob29vby5qcGcpICANCg0KDQojIENvbnRleHRvDQoNCkR1cmFudGUgZXN0YSBhY3RpdmlkYWQgY3JlYXJlbW9zIHVuIGF1ZGlvIGEgcGFydGlyIGRlIHRleHRvICh0ZXh0IHRvIHNwZWVjaCkgaGFjaWVuZG8gdXNvIGRlIGxhIEFQSSAiVGV4dC10by1zcGVlY2giIGRlIE9wZW5BSSwgdW5hIHZleiBvYnRlbmlkbyBlbCBhdWRpbyBoYXJlbW9zIHVzbyBkZSB1bmEgZGUgbGFzIGhlcnJhbWllbnRhcyBiw6FzaWNhcyBkZSBlZmVjdG9zIGRlIGF1ZGlvIGxhIGN1YWwgZXMgbGEgZ2VuZXJhY2nDs24gZGUgZWNvLiAgDQpFbCBlY28gZXMgZW4gc8OtIHVuYSBmb3JtYSBlbiBsYSBxdWUgc2UgcmV0cmFzYW4gbGFzIG9uZGFzIGRlIGF1ZGlvLCBlcyBkZWNpciBxdWUgc2UgbXVldmVuIHVuIHBvY28gaGFjaWEgbGEgZGVyZWNoYSBwYXJhIHF1ZSBsYXMgc2XDsWFsZXMgZGUgYXVkaW8gb2J0ZW5nYW4gZXN0ZSBjYXJhY3RlcsOtc3RpY28gImRlbGF5Ii4gIA0KDQojIEFjdGl2aWRhZA0KDQojIyBDcmVhY2nDs24gZGVsIGF1ZGlvIChQeXRob24pDQpEdXJhbnRlIGVzdGEgcHJpbWVyIGZhc2UgZGVsIHByb2Nlc28gZXMgbmVjZXNhcmlvIGNyZWFyIHVuIGF1ZGlvIG1lZGlhbnRlIGxhIEFQSSBkZSBUZXh0LXRvLXNwZWVjaCBkZSBPcGVuQUksIGEgY29udGludWFjacOzbiBzZSBtdWVzdHJhIGVsIGPDs2RpZ28gY3JlYWRvIGVuIHB5dGhvbjogIA0KDQohW10oQzpcXFVzZXJzXFxMdWlzRFxcRG9jdW1lbnRzXFxDb25jZW50cmFjacOzblxcTU9EVUxPIDRcXHB5LmpwZykNCg0KVW5hIHZleiBleHRyYWlkbyBlbCBhdWRpbywgcHJvY2VkZW1vcyBhIHJlYWxpemFyIGxhcyBtb2RpZmljYWNpb25lcyBuZWNlc2FyaWFzIGVuIFIuLi4gDQoNCiMjIE1vZGlmaWNhY2nDs24gZGVsIGF1ZGlvIChSKQ0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShzaWduYWwpDQpsaWJyYXJ5KGF1ZGlvKQ0KbGlicmFyeSh0dW5lUikNCmBgYA0KDQpQaXJtZXJvIGRlYmVtb3MgaW1wb3J0YXIgZWwgYXVkaW8gZ2VuZXJhZG8gY29uIEFJIHkgbG8gb2NudmVydGltb3MgZW4gdW4gZm9ybWF0byBxdWUgcG9kYW1vcyBtYW5pcHVsYXINCmBgYHtyfQ0KZmlsZV9wYXRoIDwtICJzcGVlY2hfZXF1aXBvLm1wMyINCmF1ZGlvX2RhdGEgPC0gcmVhZE1QMyhmaWxlX3BhdGgpDQoNCnkgPC0gYXVkaW9fZGF0YUBsZWZ0DQpGcyA8LSBhdWRpb19kYXRhQHNhbXAucmF0ZQ0KYGBgDQohW10oQzpcXFVzZXJzXFxMdWlzRFxcRG9jdW1lbnRzXFxDb25jZW50cmFjacOzblxcTU9EVUxPIDRcXHNwZWVjaF9lcXVpcG8ubXAzKQ0KDQoNCkEgY29udGludWFjacOzbiBlc3RhYmxlY2Vtb3MgbG9zIHBhcsOhbWV0cm9zIGRlbCBlY28geSBsbyBnZW5lcmFtb3MsIGVuIGVzdGUgY2FzbyBjb24gMC4yNSBzZWd1bmRvcyBkZSBkZWxheSB5IHByb2NlZGVtb3MgYSBnZW5lcmFybyBjb24gbGFzIGZ1bmNpb25lcw0KYGBge3J9DQphbHBoYSA8LSAwLjkNCkQgPC0gMC4yNSAqIEZzICANCg0KZWNobyA8LSBudW1lcmljKGxlbmd0aCh5KSArIEQpDQplY2hvWzE6bGVuZ3RoKHkpXSA8LSB5DQplY2hvWyhEKzEpOihEK2xlbmd0aCh5KSldIDwtIGFscGhhICogeQ0KYGBgDQoNCkZpbmFsbWVudGUgc3VtYW1vcyBlbCBhdWRpbyBvcmlnaW5hbCB5IGVsIGVjbyBxdWUgY3JlYW1vcyB5IGd1YXJkYW9tcyBlbCByZXN1bHRhZG8gY29tbyB1biBudWV2byBhdWRpbw0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCnggPC0geSArIGVjaG9bMTpsZW5ndGgoeSldDQoNCm5ld19hdWRpbyA8LSBXYXZlKHgsIHNhbXAucmF0ZSA9IEZzKQ0KDQojb3V0cHV0X2ZpbGUgPC0gInNwZWVjaF9lcXVpcG9fd2l0aF9lY2hvMS53YXYiDQojd3JpdGVXYXZlKG5ld19hdWRpbywgZmlsZW5hbWUgPSBvdXRwdXRfZmlsZSkNCmBgYA0KDQohW10oQzpcXFVzZXJzXFxMdWlzRFxcRG9jdW1lbnRzXFxDb25jZW50cmFjacOzblxcTU9EVUxPIDRcXHNwZWVjaF9lcXVpcG9fd2l0aF9lY2hvMS53YXYpDQoNCkVzIGFzw60gY29tbyBjb25jbHVpbW9zIGVzdGUgcHJvY2VzbywgY29uIHVuIG51ZXZvIGF1ZGlvIHF1ZSBjb250aWVuZSBjaWVydG8gZGVsYXkgZW4gc3VzIG9uZGFzLCBjYXVzYW5kbyBlbCBlZmVjdG8gZGUgZWNvLiANCg==