117 lines
3.9 KiB
Markdown
117 lines
3.9 KiB
Markdown
# **Workflow per Analitzar i Transcriure Arxius d’Àudio de Ràdio**
|
||
|
||
Aquest esquema mostra el procés per a **detectar patrons (falques, separadors), identificar veus i transcriure l’àudio de manera automàtica**.
|
||
|
||
s'ha instal·lat una instància d'A.N.a.B.
|
||
https://secre.xab.cat/index.php
|
||
|
||
A.N.a.B. és un conjunt d'eines genials (coolkit) per gestionar arxius d'àudio de manera col·laborativa per a un grup de persones que volen compartir documents sonors: conferències, remescles musicals o arxius de ràdio.
|
||
|
||
- Pots importar tots els teus documents d'àudio a partir de fitxers d'àudio i vídeo amb una simple URL.
|
||
- El sistema extraurà una forma d'ona dels teus fitxers i només emmagatzemarà això al teu servidor.
|
||
- No emmagatzemarà el fitxer d'àudio ni l'àudio extret d'un vídeo, sinó només la forma d'ona.
|
||
- La proporció de forma d'ona a fitxer d'àudio és aproximadament d'1/10.
|
||
|
||
https://github.com/chevil/anab
|
||
|
||
```
|
||
[INPUT] → [Arxius MP3] → [Fingerprinting] → [Reconeixement de Veu] → [Transcripció] → [OUTPUT]
|
||
```
|
||
|
||
## ** 1. Captura i Processament Inicial**
|
||
- **Entrada:** Arxius `.mp3` en blocs d'1 a 5 hores.
|
||
- **Conversió a format compatible** (`ffmpeg` per convertir a `.wav` si cal)
|
||
- **Divisió en segments més manejables** (`pydub`, `sox` o `ffmpeg`)
|
||
|
||
```
|
||
+--------------------------------+
|
||
| input/audio_20240201.mp3 |
|
||
+--------------------------------+
|
||
│ (ffmpeg / pydub)
|
||
▼
|
||
+--------------------------------+
|
||
| audio_20240201_segment1.wav |
|
||
| audio_20240201_segment2.wav |
|
||
+--------------------------------+
|
||
```
|
||
|
||
## ** 2. Identificació de Falques i Separadors**
|
||
- **Objectiu:** Localitzar segments recurrents a l’àudio (falques publicitàries, sintonies, talls informatius...)
|
||
- **Fingerprinting amb `audfprint` o `Chromaprint`**
|
||
- **Comparació amb una base de dades prèviament entrenada**
|
||
|
||
```
|
||
+---------------------+
|
||
| Analitzant hash |
|
||
+---------------------+
|
||
│ (audfprint match)
|
||
▼
|
||
+---------------------+
|
||
| Coincidència! |
|
||
| Falca detectada |
|
||
+---------------------+
|
||
```
|
||
|
||
## ** 3. Diarització i Identificació de Veus**
|
||
- **Objectiu:** Saber **quan parla qui** en cada moment.
|
||
- **`pyannote.audio` per segmentació de locutors**
|
||
- **Coincidència amb mostres predefinides**
|
||
|
||
```sh
|
||
pipeline = SpeakerDiarization.from_pretrained("pyannote/speaker-diarization")
|
||
diarization = pipeline("audio_segment.wav")
|
||
```
|
||
```
|
||
+---------------------+
|
||
| 0s-30s: Speaker A |
|
||
| 31s-55s: Speaker B |
|
||
| 56s-90s: Speaker A |
|
||
+---------------------+
|
||
```
|
||
|
||
## ** 4. Transcripció Automàtica**
|
||
- **Objectiu:** Convertir la veu en text per alimentar webs i bases de dades.
|
||
- **Whisper d’OpenAI (`base`, `medium`, `large`)**
|
||
- **DeepSpeech (entrenable, més privacitat)**
|
||
|
||
```sh
|
||
whisper audio_segment.wav --language ca --model medium
|
||
```
|
||
```
|
||
+---------------------+
|
||
| Transcripció |
|
||
+---------------------+
|
||
| "Avui a les 9h..."|
|
||
| "Bon dia..." |
|
||
+---------------------+
|
||
```
|
||
|
||
## ** 5. Generació de Resultats i Integració**
|
||
- **Objectiu:** Guardar i distribuir els resultats.
|
||
- **Indexació per hora i locutor**
|
||
- **Exportació en format JSON, TXT, RSS per webs de notícies**
|
||
- **Opció de revisió manual per millorar precisió**
|
||
|
||
```json
|
||
{
|
||
"data": "2024-02-01",
|
||
"hora": "09:00",
|
||
"locutor": "Speaker A",
|
||
"text": "Bon dia, comencem el butlletí informatiu..."
|
||
}
|
||
```
|
||
|
||
## **Implementació Bàsica en Python**
|
||
Exemple de pipeline bàsic en **Python**:
|
||
```python
|
||
import whisper
|
||
model = whisper.load_model("medium")
|
||
result = model.transcribe("audio_segment.wav")
|
||
print(result["text"])
|
||
```
|
||
|
||
## **Conclusions**
|
||
✔ **Automatització del flux de treball** des de la captura fins a la transcripció.
|
||
✔ **Identificació de patrons i locutors** per segmentar millor el contingut.
|
||
✔ **Sistema escalable** per gestionar volums grans d’àudio de ràdio de forma eficient.
|
||
✔ **Possibilitat d’integració en APIs i CMS** per difondre contingut automàticament. |