Téléverser les fichiers vers "/"

autres fichiers
This commit is contained in:
2026-02-23 13:26:17 +00:00
parent 1cd8eb5f42
commit f45829c95a
5 changed files with 210 additions and 0 deletions

82
index.html Normal file
View File

@ -0,0 +1,82 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bubble Bobble JS</title>
<style>
body {
margin: 0;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: #87CEEB;
font-family: Arial, sans-serif;
}
#gameContainer {
position: relative;
border: 3px solid #333;
background-color: #000;
}
#gameCanvas {
background-color: #000;
}
#ui {
display: flex;
justify-content: space-between;
width: 800px;
margin-top: 10px;
color: white;
font-size: 20px;
font-weight: bold;
}
#controls {
margin-top: 20px;
color: white;
text-align: center;
}
button {
padding: 10px 20px;
font-size: 16px;
background-color: #4CAF50;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
margin: 5px;
}
button:hover {
background-color: #45a049;
}
</style>
</head>
<body>
<h1 style="color: white;">Bubble Bobble JS</h1>
<div id="ui">
<div>Score: <span id="score">0</span></div>
<div>Vies: <span id="lives">3</span></div>
<div>Niveau: <span id="level">1</span></div>
</div>
<div id="gameContainer">
<canvas id="gameCanvas" width="800" height="600"></canvas>
</div>
<div id="controls">
<p>Contrôles: Flèches pour déplacer, ESPACE pour sauter, CTRL pour tirer des bulles</p>
<button onclick="startGame()">Nouvelle Partie</button>
<button onclick="pauseGame()">Pause</button>
</div>
<script src="game.js"></script>
</body>
</html>

View File

@ -0,0 +1,30 @@
cat << 'EOF' > /workspace/REINSTALL_CLEAN.md
# 📓 IA WORKSPACE : BACKUP COMPLET
## 🎤 1. SYNTHÈSE VOCALE (PIPER TTS)
# Installation Système
apt-get update && apt-get install -y espeak-ng-data libespeak-ng1 ffmpeg wget
# Installation Python (venv)
source /venv/main/bin/activate
pip install piper-tts flask uvicorn requests
# Téléchargement Modèles
cd /workspace
wget -O voice.onnx https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/low/fr_FR-siwis-low.onnx
wget -O voice.onnx.json https://huggingface.co/rhasspy/piper-voices/resolve/main/fr/fr_FR/siwis/low/fr_FR-siwis-low.onnx.json
## 🎨 2. GÉNÉRATION D'IMAGES (COMFYUI)
cd /workspace
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt
# Modèle SDXL
cd /workspace/ComfyUI/models/checkpoints/
wget https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors
## 🔗 3. URL OPEN WEBUI
- TTS: http://localhost:8000/v1 (Modèle: voice.onnx)
- IMAGE: http://localhost:8188
EOF

3
jetonvastaigitea.txt Normal file
View File

@ -0,0 +1,3 @@
980621d1d7f71f71a403b6c31078bf8f3734441c
https://git.syoul.fr/nicoboy/VASTAI-STUDIO-AUDIO/raw/branch/main/provisioning_script.sh?token=980621d1d7f71f71a403b6c31078bf8f3734441c

43
server.py(gradio) Normal file
View File

@ -0,0 +1,43 @@
import gradio as gr
import torch
import scipy.io.wavfile
import numpy as np
import tempfile
from audiocraft.models import MusicGen, AudioGen
print("🔄 Chargement des modèles...")
music_model = MusicGen.get_pretrained("facebook/musicgen-small")
audio_model = AudioGen.get_pretrained("facebook/audiogen-medium")
def generate_music(prompt, duration=10):
music_model.set_generation_params(duration=duration)
wav = music_model.generate([prompt])
wav_np = wav[0, 0].cpu().numpy()
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
scipy.io.wavfile.write(f.name, music_model.sample_rate, (wav_np * 32767).astype(np.int16))
return f.name
def generate_sound(prompt, duration=5):
audio_model.set_generation_params(duration=duration)
wav = audio_model.generate([prompt])
wav_np = wav[0, 0].cpu().numpy()
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
scipy.io.wavfile.write(f.name, audio_model.sample_rate, (wav_np * 32767).astype(np.int16))
return f.name
with gr.Blocks(title="🎙️ Studio Audio IA") as demo:
gr.Markdown("## 🎙️ Studio Audio IA")
with gr.Tab("🎵 Musique"):
p1 = gr.Textbox(label="Prompt")
d1 = gr.Slider(5, 30, value=10, step=5, label="Durée (s)")
b1 = gr.Button("Générer")
o1 = gr.Audio(label="Résultat")
b1.click(generate_music, inputs=[p1, d1], outputs=o1)
with gr.Tab("🔊 Bruitages"):
p2 = gr.Textbox(label="Prompt")
d2 = gr.Slider(2, 15, value=5, label="Durée (s)")
b2 = gr.Button("Générer")
o2 = gr.Audio(label="Résultat")
b2.click(generate_sound, inputs=[p2, d2], outputs=o2)
demo.launch(server_name="0.0.0.0", server_port=7860, share=False)

52
tts_server.py Normal file
View File

@ -0,0 +1,52 @@
import os
import subprocess
import uuid
from flask import Flask, request, send_file, jsonify
app = Flask(__name__)
# CONFIGURATION
PIPER_MODEL = "/workspace/voice.onnx"
OUTPUT_DIR = "/workspace/temp_audio"
# Créer le dossier temporaire s'il n'existe pas
os.makedirs(OUTPUT_DIR, exist_ok=True)
@app.route('/v1/audio/speech', methods=['POST'])
def text_to_speech():
data = request.json
text = data.get("input")
if not text:
return jsonify({"error": "No input text provided"}), 400
# Générer un nom de fichier unique
file_id = str(uuid.uuid4())
output_file = os.path.join(OUTPUT_DIR, f"{file_id}.wav")
try:
# Commande Piper : lit le texte via stdin et écrit dans un fichier
# On utilise echo pour envoyer le texte à Piper
command = f'echo "{text}" | piper --model {PIPER_MODEL} --output_file {output_file}'
# Exécution de la commande
subprocess.run(command, shell=True, check=True)
# Envoyer le fichier généré à Open WebUI
return send_file(output_file, mimetype="audio/wav")
except subprocess.CalledProcessError as e:
return jsonify({"error": f"Piper failed: {str(e)}"}), 500
except Exception as e:
return jsonify({"error": str(e)}), 500
@app.route('/v1/models', methods=['GET'])
def list_models():
# Nécessaire pour que certaines interfaces valident la connexion
return jsonify({
"data": [{"id": "voice.onnx", "object": "model", "owned_by": "piper"}]
})
if __name__ == '__main__':
# Le serveur écoute sur toutes les interfaces sur le port 8000
app.run(host='0.0.0.0', port=8000)