feat: add multimodal audio analysis
This commit is contained in:
@@ -11,6 +11,7 @@ pi → extension index.ts → Antigravity OAuth / agy CLI → modelli disponibil
|
||||
- **CLI wrapper**: esegue `agy` per chat, immagini e video.
|
||||
- **Client Antigravity diretto**: usa OAuth e gli endpoint cloudcode-pa per provider, modelli, audio F12 e `antigravity_chat`.
|
||||
- **Pipeline audio**: `ffmpeg` registra/ottimizza, poi invia `inlineData` audio ad Antigravity.
|
||||
- **Analisi audio**: `ffprobe` misura il file, `ffmpeg` genera la waveform PNG, quindi `agy_analyze_audio` invia audio + immagine + metadati a Gemini via OAuth Antigravity.
|
||||
- **Context injection**: aggiunge ambiente, stato sessione e memoria locale.
|
||||
- **Persistenza**: configurazione in `~/.config/agy-pi/config.json`; conversazioni e token sono gestiti dal client Antigravity.
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
| `agy_character` | Consistenza di personaggio/oggetto. |
|
||||
| `agy_analyze` | Analisi immagine. |
|
||||
| `agy_transcribe` | Trascrizione audio tramite Antigravity OAuth. |
|
||||
| `agy_analyze_audio` | Analisi audio multimodale: WAV/audio + waveform PNG + metadati locali tramite Antigravity OAuth. |
|
||||
| `agy_video` | Analisi di video. |
|
||||
| `agy_models` | Elenco modelli Antigravity disponibili. |
|
||||
| `agy_conversation` | Stato della conversazione agy. |
|
||||
@@ -20,6 +21,12 @@
|
||||
|
||||
Accetta `filePath` e, opzionalmente, `language`. Converte WAV in Opus/OGG quando utile e invia l'audio al modello configurato in `voiceModel` tramite Antigravity. Non usa chiavi API esterne né fallback a provider diversi.
|
||||
|
||||
## `agy_analyze_audio`
|
||||
|
||||
Accetta un file audio e, opzionalmente, una domanda, un modello Gemini e una cartella di output. Usa `ffprobe` per estrarre durata, codec, campionamento, canali, bit depth, peak/RMS e intervalli di silenzio; usa `ffmpeg` per generare una waveform PNG. Invia audio, waveform e metadati insieme al modello Gemini tramite OAuth Antigravity come `inlineData`. Non richiede parlato e non usa la Gemini Files API né chiavi API esterne.
|
||||
|
||||
Con `outputDir` conserva la waveform e un report JSON; l'audio originale non viene copiato. Il limite del file inviato è venticinque megabyte.
|
||||
|
||||
## Contesto
|
||||
|
||||
`agy` può ricevere un blocco con ambiente, stato della sessione e memoria locale tramite `injectContext`. La ricerca web non è svolta dall'estensione: per informazioni aggiornate usa gli strumenti web dell'agente principale.
|
||||
Reference in New Issue
Block a user