Programo gratis

No sabes lo que haces, podrías estar ganando minolles y minolles:



Yo que tú echaba CV en ese sitio.

Seguro que te ofrecen lo que dice su jefe.

Sí, estoy seguro. España es un gran sitio para trabajar como hinjiñero o 100tifiko. Verdad de la buena.
 
Viernes noche, vacaciones Semana Sta. ,8:30pm, o llueve muchio donde vives o estás peor que la mayoría de forreros, juas, juas

A ver, necesito programar una red neuronal con TensorFlow, quiero meter una señal de audio continua, irla checkeando cada 5 segundos en una ventana de 10 segundos y que la salida me diga en que offset empieza el sonido.
 
El artículo es de pago. Evidentemente, en España no hay déficit de ingenieros, más bien al contrario, la prueba es que España exporta ingenieros y que los sueldos actuales de los ingenieretes españoles son de chiste. Y te lo dice un ingeniero español.

Pero si les mandé a esos amigos mi CV por la coña después de leer la noticia. Tenían una vacante que encajaba con mi especialidad y dije, "a ver si es verdad lo que dice su jefe".

A un prof. doktor hinjiñero con década y media de experiencia en empresas privadas y como profesor e investigador, en un puesto senior, me dijeron que igual llegaban a pagarle "algo más de 60k al año, si se llevaba el bonus completo".

Me descorazoné de la guano de salario y les dije que no estaba interesado.

Evidentemente la palabra de su jefe no vale nada.

España es un puro erial para cualquiera que tenga perfil científico o técnico. Es mejor tratar con empresas serias del primer mundo que ofrezcan teletrabajo y te paguen la mitad de lo que pagan a sus nacionales, que ya será el doble de lo que paga cualquier empresa española.
 
Te ahogas en un vaso de agua amigo. Ese problema no necesita de una red neuronal. Puedes hacer un sistema clásico de detección de envolvente mediante procesado de la señal por FFT (Transformada Rápida de Fourier) para conseguir la detección del offset a partir del cual comienza el sonido.
¿ Cómo puedes saber el offset con Fourier si el dominio es en la frecuencia y no en el tiempo?, pon un ejemplo

De todas formas lo necesito en TensorFlow, ¿puedes hacerlo?
 
import tensorflow as tf
import numpy as np
import librosa

# Preprocesamiento de datos
def preprocess_audio(audio_path, window_size=10, stride=5):
# Cargar la señal de audio
audio, sr = librosa.load(audio_path, sr=None)

# Convertir la señal de audio en ventanas de 10 segundos con un desplazamiento de 5 segundos
windows = []
for i in range(0, len(audio) - window_size * sr, stride * sr):
window = audio[i:i+window_size*sr]
windows.append(window)

return np.array(windows)

# Creación del modelo de red neuronal
def create_model():
model = tf.keras.Sequential([
# Agrega capas convolucionales o recurrentes según la elección del modelo
# Añade una capa de salida con una sola neurona para predecir el offset del sonido
])
return model

# Entrenamiento del modelo
def train_model(model, X_train, y_train, epochs=10):
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(X_train, y_train, epochs=epochs, batch_size=32)

# Prueba del modelo
def test_model(model, X_test, y_test):
loss = model.evaluate(X_test, y_test)
print("Test Loss:", loss)

# Inferencia
def predict_offset(model, audio_path, window_size=10, stride=5):
windows = preprocess_audio(audio_path, window_size, stride)
predictions = model.predict(windows)
# Puedes hacer algo con las predicciones, como encontrar el offset máximo
max_offset_index = np.argmax(predictions)
return max_offset_index * stride

# Ejemplo de uso
audio_path = "ejemplo_audio.wav"
X_train = preprocess_audio(audio_path)
y_train = obtener_etiquetas() # Obtén etiquetas de alguna manera, esto dependerá de tus datos

model = create_model()
train_model(model, X_train, y_train)
test_model(model, X_test, y_test)

# Realizar inferencia en una nueva señal de audio
predicted_offset = predict_offset(model, "nueva_audio.wav")
print("Inicio del sonido detectado en el offset:", predicted_offset)
 
¿ Cómo puedes saber el offset con Fourier si el dominio es en la frecuencia y no en el tiempo?, pon un ejemplo

El inicio del sonido se asocia con una frecuencia dominante en el espectro de frecuencia de la señal de audio. Una vez hecho el análisis FFT La frecuencia dominante se convierte en el offset correspondiente en el dominio del tiempo considerando la frecuencia de muestreo de la señal de audio.

Por cierto, yo te doy una solución a un problema, pero no voy a resolver el problema de la forma que tú quieras porque parece que te estoy ayudando a solucionar una práctica de la Uni. Ya dije muy clarito que nada de propuestas de flipados.
Bueno en el título pone "programo gratis", pero es verdad que en el primer post dices esto, fallo mio.

Vale, era muy fácil, imagina ahora que ademas tenemos ruido de fondo, ruido blanco o algunas frecuencias varias, quiero saber cuando alguien comienza a hablar, por ejemplo dice: "Ok gugles"
 
tengo una app q desde anteayer no me carga los perfiles si accedo directamente a ellos, el resto de cosas me carga

q esta fallando?

uso una version de 2021 porq la version actual da angustia
 
import tensorflow as tf
import numpy as np
import librosa

# Preprocesamiento de datos
def preprocess_audio(audio_path, window_size=10, stride=5):
# Cargar la señal de audio
audio, sr = librosa.load(audio_path, sr=None)

# Convertir la señal de audio en ventanas de 10 segundos con un desplazamiento de 5 segundos
windows = []
for i in range(0, len(audio) - window_size * sr, stride * sr):
window = audio[i:i+window_size*sr]
windows.append(window)

return np.array(windows)

# Creación del modelo de red neuronal
def create_model():
model = tf.keras.Sequential([
# Agrega capas convolucionales o recurrentes según la elección del modelo
# Añade una capa de salida con una sola neurona para predecir el offset del sonido
])
return model

# Entrenamiento del modelo
def train_model(model, X_train, y_train, epochs=10):
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(X_train, y_train, epochs=epochs, batch_size=32)

# Prueba del modelo
def test_model(model, X_test, y_test):
loss = model.evaluate(X_test, y_test)
print("Test Loss:", loss)

# Inferencia
def predict_offset(model, audio_path, window_size=10, stride=5):
windows = preprocess_audio(audio_path, window_size, stride)
predictions = model.predict(windows)
# Puedes hacer algo con las predicciones, como encontrar el offset máximo
max_offset_index = np.argmax(predictions)
return max_offset_index * stride

# Ejemplo de uso
audio_path = "ejemplo_audio.wav"
X_train = preprocess_audio(audio_path)
y_train = obtener_etiquetas() # Obtén etiquetas de alguna manera, esto dependerá de tus datos

model = create_model()
train_model(model, X_train, y_train)
test_model(model, X_test, y_test)

# Realizar inferencia en una nueva señal de audio
predicted_offset = predict_offset(model, "nueva_audio.wav")
print("Inicio del sonido detectado en el offset:", predicted_offset)
Esto se acerca bastante, ¿lo has hecho tú o el GPT?
El problema con este código es que es muy abstracto, habría que meter algunos filtros y usa muchísimas neuronas, con lo que no me cabe en mi arduino de 64KB de memoria.

Vale, era muy fácil, imagina ahora que ademas tenemos ruido de fondo, ruido blanco o algunas frecuencias varias, quiero saber cuando alguien comienza a hablar, por ejemplo dice: "Ok gugles"
¿puedes mejorarlo teniendo en cuenta esto último?, no entinedo lo del offset máximo, quiero que me diga en que punto exacto de la señal dice las palabras mágicas.
 
Esto se acerca bastante, ¿lo has hecho tú o el GPT?
El problema con este código es que es muy abstracto, habría que meter algunos filtros y usa muchísimas neuronas, con lo que no me cabe en mi arduino de 64KB de memoria.


¿puedes mejorarlo teniendo en cuenta esto último?, no entinedo lo del offset máximo, quiero que me diga en que punto exacto de la señal dice las palabras mágicas.

No tengo ni idea de lo que he puesto.

Estaba con el chatGPT con mis historias y lo he puesto en el promt. Eso es lo que me ha contestado.
 
Pues como tengas mucha potencia de ruido blanco date por perecid. Los otros casos podrían ser parcialmente abordables mediante filtrado digital. Mírate la transformada Z.
Hombre si el ruido blanco es bajito puedes usar el nivel de amplitud la señal también como trigger, por eso te comentaba lo de Fourier no funcionaba 🙂
 

Estadísticas del foro

Temas
2.049.715
Mensajes
58.156.132
Miembros
190.836
Último miembro
KomandanteKrull

El blog de burbuja.info

Volver