STT: Transcripció àudio català (i castellà)
Contingut
Whisper
ho hem de fer en un venv:
mkdir model-whisper cd model-whisper python3 -m venv whisper-env source whisper-env/bin/activate () pip install -U pip () pip install -U openai-whisper
i ara ja podem fer una transcripció:
Recordatori punt de muntatge
per posar el fitxer t0001.wav al servidor, recordem que tenim una unitat muntada en el portàtil: ~/servidorIA. Hem de mirar si ja el tenim muntat:
mount | grep servidorIA
si no està muntat el muntem:
$ sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA $ sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222
i si no es pot muntar perquè el directori no està buit, podem eliminar el contingut:
rm -rf ~/servidorIA/*
i aleshores ja podem muntar. O bé millor muntar-ho sense haver d'eliminar el contingut:
sshfs -o nonempty joan@192.168.1.184:/home/joan/projectes ~/servidorIA
per desmuntar-lo:
fusermount -u ~/servidorIA
i en el servidor copiem el wav de la carpeta compartida al directori de treball:
$ mv /home/joan/projectes/t0001.wav .
I ara ja podem fer la transcripció:
whisper t0001.wav --language Catalan --model turbo 100%|██████████████████████████████████████| 1.51G/1.51G [00:14<00:00, 114MiB/s] [00:00.000 --> 00:01.160] Gràcies per ser amb nosaltres. [00:01.760 --> 00:02.040] Hola. [00:02.280 --> 00:06.400] Helen, pot ser un problema ser crònicament amables i complements? [00:07.100 --> 00:10.580] Sí, perquè quan parlem de ser crònicament amables i complements [00:10.580 --> 00:14.160] estem parlant que ens estem traient a nosaltres [00:14.160 --> 00:17.600] perquè són persones que no sabem mai escoltar-nos. ...
whisper t0001.wav --language Catalan --model turbo --output_format txt
Amb un script python: prova_whisper.py:
import whisper
model = whisper.load_model("turbo")
result = model.transcribe(
"t0001.wav",
language="ca"
)
print(result["text"])
$ python3 prova_whisper.py
I una cosa important si el que busques és català amb la màxima qualitat
Existeix també un model específic de català, whisper-large-v3-ca-3catparla, desenvolupat pel Projecte AINA, entrenat específicament per a reconeixement automàtic de veu en català.
Per instal·lar aquest model:
() pip install torch transformers accelerate
creem el fitxer transcribe.py:
import torch
from transformers import pipeline
model_name = "projecte-aina/whisper-large-v3-ca-3catparla"
pipe = pipeline(
"automatic-speech-recognition",
model=model_name,
device=0 if torch.cuda.is_available() else -1,
)
result = pipe("t0001.wav")
print(result["text"])
$ python3 transcribe.py Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. config.json: 100%|█████████████████████████████████████████████████████████████████████████████████| 1.35k/1.35k [00:00<00:00, 6.20MB/s] pytorch_model.bin.index.json: 100%|██████████████████████████████████████████████████████████████████| 112k/112k [00:00<00:00, 35.7MB/s] model.safetensors.index.json: 100%|███████████████████████████████████████████████████ ...
el primer que fa és descarregar el model
ValueError: You have passed more than 3000 mel input features (> 30 seconds) which automatically enables long-form generation
(li he passat un àudio de més de 30 segons, però funcionaria).
Ho provo amb el /home/joan/projectes/NLP_catala/gravar_so_intern/samples/t0014/c993.wav i funciona correctament: el número de seguidors a youtube en directe
la segona vegada que ho executo ja no caldrà descarregar el model. El que fa és carregar els pesos del model. Recordar que estic treballant en un venv, amb tots els avantatges que això comporta.
creat per Joan Quintana Compte, octubre 2026