<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joan</id>
	<title>wikijoan - Contribucions de l'usuari [ca]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Joan"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php/Especial:Contribucions/Joan"/>
	<updated>2026-10-11T00:16:19Z</updated>
	<subtitle>Contribucions de l'usuari</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299244</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299244"/>
		<updated>2026-10-10T23:32:05Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi/clonació. És a dir, jo el que volia fer aquí ja és la clonació. Aquesta tècnica s'emmarca amb la tècnica de clonació directa amb un model zero-shot multilingüe. Models com F5-TTS permeten clonar una veu a partir només d'uns segons d'àudio i generar directament en l'idioma objectiu. Els models que es poden fer servir són XTTS-v2 (Coqui), F5-TTS o GPT-SoVITS (estic provant F5-TTS), i el problema és que cap d'aquests models té el català com a idioma oficialment suportat de sèrie.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
=2a prova: model VITS=&lt;br /&gt;
&lt;br /&gt;
2a prova per a la síntesi d'una veu en català&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Abans de fer la clonació de veu primer he de fer síntesi de veu en català. S'ha de separar el problema en dos passos:&lt;br /&gt;
&lt;br /&gt;
- Genera la parla en català amb un model ja entrenat pel Projecte Aina (BSC), com Matxa-TTS o el VITS multi-parlant (projecte-aina/tts-ca-coqui-vits-multispeaker) — és la primera solució tecnològica publicada com a model lingüístic en obert que ofereix interpretació de text a veu en català central, nord-occidental, balear i valencià, disponible a Hugging Face. &lt;br /&gt;
- Converteix el timbre a la teva veu amb una eina de voice conversion com RVC (Retrieval-based Voice Conversion) o so-vits-svc. Entrenes un model petit amb ~10-30 minuts d’àudio net de la teva veu (parlant en qualsevol idioma, fins i tot) i li apliques la sortida del TTS català. El model de conversió només ha d’aprendre el ''color'' de la teva veu, no l'idioma, així que funciona molt bé i és ràpid d’entrenar amb 16GB. Aquest segon pas és la ''clonació de veu'', i la desenvolupo en una altra entrada. Ara ens centrarem només en la síntesi.&lt;br /&gt;
&lt;br /&gt;
Anem a fer dons la síntesi de veu en català.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/veu-catala &amp;amp;&amp;amp; cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate    # a Windows: venv\Scripts\activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Recordem que estem seguint:&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Primer instal·lem PyTorch. Aquí el Claude em fa un avís: La teva 5060 Ti és arquitectura Blackwell (sm_120). Si instal·les PyTorch “normal” (per exemple amb CUDA 12.1 o 12.4), et donarà l’error CUDA capability sm_120 is not compatible. Necessites la build amb CUDA 12.8 o superior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i comprovem que ho detecta bé:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També necessitem com a dependència:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install ffmpeg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja podem instal·lar TTS (llibreria coqui-tts, compatible amb els models VITS del BSC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install TTS &lt;br /&gt;
ERROR: Ignored the following versions that require a different python version: 0.0.10.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.10.3 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.11 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.12 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.14.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.9 Requires-Python ... &amp;gt;=3.7.0,&amp;lt;3.11; 0.7.1 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.8.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.9.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11&lt;br /&gt;
ERROR: Could not find a version that satisfies the requirement TTS (from versions: none)&lt;br /&gt;
ERROR: No matching distribution found for TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Confirmat: el paquet TTS original de Coqui està abandonat (l'empresa va tancar) i el darrer release no accepta Python ≥3.12, que és probablement el que tens instal·lat. Hi ha un fork actiu mantingut per Idiap que ha canviat de nom a coqui-tts.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install coqui-tts -&amp;gt; ara sí&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aquest fork suporta Python 3.10 fins a &amp;lt;3.13 (i les últimes versions ja arriben fins &amp;lt;3.14). Si el teu python3 --version et dona 3.13 o més nou, hauràs de crear el venv amb una versió compatible:&lt;br /&gt;
&lt;br /&gt;
Prova ràpida amb el model multi-parlant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però dóna un error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
ImportError: cannot import name 'isin_mps_friendly' from 'transformers.pytorch_utils' (/home/joan/veu-catala/venv/lib/python3.12/site-packages/transformers/pytorch_utils.py)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Trobat exactament: és un problema conegut i molt recent — transformers 5.x va eliminar la funció isin_mps_friendly que coqui-tts encara fa servir internament (a TTS/tts/layers/tortoise/autoregressive.py). Se't deu haver instal·lat automàticament una versió massa nova de transformers.&lt;br /&gt;
&lt;br /&gt;
Solució&lt;br /&gt;
&lt;br /&gt;
Fixa transformers a una versió anterior a la 5.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install &amp;quot;transformers==4.57.6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$ pip show transformers&lt;br /&gt;
Name: transformers&lt;br /&gt;
Version: 4.57.6&lt;br /&gt;
&lt;br /&gt;
$ python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara sí!&lt;br /&gt;
&lt;br /&gt;
Ja puc fer la prova de síntesi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;,&lt;br /&gt;
                 speaker=&amp;quot;ona&amp;quot;,&lt;br /&gt;
                 file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Els models que podem fer servir estan aquí:&lt;br /&gt;
*https://huggingface.co/spaces/projecte-aina/catalan_tts_arena&lt;br /&gt;
i són:&lt;br /&gt;
* Vits 2&lt;br /&gt;
* Matxa-TTS&lt;br /&gt;
* Matxa-TTS-multiaccent -&amp;gt; aquest és el Matxa v2 (multiaccent), i és el que acabaré fent servir finalment&lt;br /&gt;
* StableTTS&lt;br /&gt;
* StyleTTS 2&lt;br /&gt;
&lt;br /&gt;
Canvio el codi per al model vits:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FileNotFoundError: [!] No espeak backend found. Install espeak-ng or espeak to your system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
primer he d'instal·lar espeak-ng&lt;br /&gt;
&lt;br /&gt;
==Instal·lació espeak-ng==&lt;br /&gt;
&lt;br /&gt;
'''NOTA1''': aquest procés el faig dues vegades, perquè la primera vegada l'he fet fora del venv, i la segona vegada dins del venv, que seria el correcte.&lt;br /&gt;
&lt;br /&gt;
'''NOTA2''': el model de síntesi que faré servir finalment serà el Matxa V2, que funciona per grafemes, i això vol dir que aquest model no necessita el espeak-ng.&lt;br /&gt;
&lt;br /&gt;
Instal·lo espeak-ng a la màquina, fora d'un venv, perquè ho faré servir bastant.&lt;br /&gt;
&lt;br /&gt;
previ, les eines de make per compilar projectes C:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install autoconf automake libtool-bin pkg-config build-essential&lt;br /&gt;
&lt;br /&gt;
$ which aclocal&lt;br /&gt;
/usr/bin/aclocal&lt;br /&gt;
&lt;br /&gt;
$ aclocal --version&lt;br /&gt;
aclocal (GNU automake) 1.16.5&lt;br /&gt;
&lt;br /&gt;
sudo apt install libtool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh -&amp;gt; crec que dóna error...&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
(ara ja funciona)&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja ho tinc instal·lat.&lt;br /&gt;
&lt;br /&gt;
Exportem les variables d'entorn&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTA: Val la pena afegir aquestes tres línies al final del ~/.bashrc (o a un script activate_env.sh propi que sourregis cada cop abans de treballar-hi), perquè si no les hauràs de tornar a exportar cada vegada que obris terminal nova.&lt;br /&gt;
&lt;br /&gt;
4. Un parell de dependències més que demana Aina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTA''': he fet el fallo que ho hauria d'haver fet amb el venv del projecte que estava fent. Per tant, torno a activar el venv i faig la instal·lació del espeak-ng&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(torno a estar dins del venv, i torno a fer la instal·lació del espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ espeak-ng --voices=ca&lt;br /&gt;
Pty Language       Age/Gender VoiceName          File                 Other Languages&lt;br /&gt;
 5  ca              --/M      Catalan            roa/ca               &lt;br /&gt;
 5  ca-ba           --/M      Catalan_(Balearic) roa/ca-ba            &lt;br /&gt;
 5  ca-nw           --/M      Catalan_(North-western) roa/ca-nw            &lt;br /&gt;
 5  ca-va           --/M      Catalan_(Valencian) roa/ca-va &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Síntesi de veu amb vits==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja tinc la llibreria TTS instal·lada.&lt;br /&gt;
&lt;br /&gt;
(en aquest punt hauria de recordar de com funciona espeak-ng)&lt;br /&gt;
&lt;br /&gt;
Ja puc continuar en el punt on estava abans, de fer una prova de síntesi: (recordem que ara, per acabar de fer la síntesi, es farà servir espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja ho tinc, ho ha fet bastant bé, amb algun error. Puc provar els altres models, o altres speakers.&lt;br /&gt;
&lt;br /&gt;
Tinc aquest codi, que no funciona massa bé:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* quins són els models que puc fer servir en comptes de &amp;quot;tts_models/ca/custom/vits&amp;quot;?&lt;br /&gt;
* quins són els speakers que puc fer servir a més d'&amp;quot;ona&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
&lt;br /&gt;
models = TTS().list_models()&lt;br /&gt;
# Segons la versió, list_models() retorna una llista o un objecte ModelManager&lt;br /&gt;
noms = models if isinstance(models, list) else models.list_models()&lt;br /&gt;
print([m for m in noms if &amp;quot;/ca/&amp;quot; in m or &amp;quot;/cat/&amp;quot; in m])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Retorna:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
['tts_models/ca/custom/vits']&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
només em retorna un model:&lt;br /&gt;
&lt;br /&gt;
tts_models/ca/custom/vits: el que ja fas servir. És multi-speaker, entrenat amb dades de Festcat i Google Catalan.&lt;br /&gt;
&lt;br /&gt;
Vull mirar tots els speakers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;)&lt;br /&gt;
print(tts.speakers)&lt;br /&gt;
...', 'jan', 'mar', 'ona', 'pau', 'pep', 'pol', 'teo']&lt;br /&gt;
&lt;br /&gt;
for s in tts.speakers[:10]:&lt;br /&gt;
    tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova.&amp;quot;, speaker=s, file_path=f&amp;quot;/home/joan/projectes/t001_{s}.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'/home/joan/projectes/t001_00236e350cc84b94a6684f182acf96e68963d7fa1164d4fa56da20f46f210b2dd3ecf189e97fb3c94113a54c12dc20550508f5b7b9b37e1873898d58a308feb5.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00459.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00762.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00983a845f95493fb27125b114c635f3b40060efaee167d32d8a3dd040c877713446c7bd3e6944641227bdb4165ecb8d684ec2ef66c817e65e77c52cc50e62ed.wav'&lt;br /&gt;
'/home/joan/projectes/t001_01591.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02452.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02689.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02992.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02f7d61edf5063ca42953b1068539f1572985aa9448555cfd8d7667121eeedc72c912d95cf33abf61a1f9620f2a01be4251a53aa5440d15849003fb31210d830.wav'&lt;br /&gt;
'/home/joan/projectes/t001_03115.wav'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I canvio la línia i provo les diferents veus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;jan&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_jan.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;mar&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_mar.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_ona.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pau&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pau.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pep&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pep.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pol&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pol.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;teo&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_teo.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La qualitat no és molt bona:&lt;br /&gt;
&lt;br /&gt;
* La llibreria original TTS de Coqui ja no es manté, perquè l'empresa va tancar. El fork mantingut és coqui-tts (pip install coqui-tts), que funciona amb el mateix codi i sol donar menys problemes amb versions noves de Python i PyTorch.&lt;br /&gt;
* El Projecte AINA (BSC) ha publicat models catalans més recents a Hugging Face, com Matxa amb el vocoder alVoCat, que tenen diversos accents i solen sonar més naturals. No es carreguen amb TTS(...): tenen el seu propi codi d'inferència. -&amp;gt; '''aquest és el que farem servir'''&lt;br /&gt;
&lt;br /&gt;
Un codi més complet és el que em proposa Claude: (que és el model del projecte AINA (BSC))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install huggingface_hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''prova.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import glob&lt;br /&gt;
from huggingface_hub import snapshot_download&lt;br /&gt;
from TTS.utils.synthesizer import Synthesizer&lt;br /&gt;
&lt;br /&gt;
# Baixa el model (només cal la primera vegada, es queda en cau)&lt;br /&gt;
model_dir = snapshot_download(repo_id=&amp;quot;projecte-aina/tts-ca-coqui-vits-multispeaker&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Localitza els fitxers dins la carpeta &amp;quot;model&amp;quot;&lt;br /&gt;
config_path = f&amp;quot;{model_dir}/model/config.json&amp;quot;&lt;br /&gt;
speakers_path = glob.glob(f&amp;quot;{model_dir}/model/speakers*.pth&amp;quot;)[0]&lt;br /&gt;
checkpoint_candidates = [&lt;br /&gt;
    p for p in glob.glob(f&amp;quot;{model_dir}/model/*.pth&amp;quot;)&lt;br /&gt;
    if &amp;quot;speakers&amp;quot; not in p&lt;br /&gt;
]&lt;br /&gt;
model_path = checkpoint_candidates[0]&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Checkpoint:&amp;quot;, model_path)&lt;br /&gt;
print(&amp;quot;Config:&amp;quot;, config_path)&lt;br /&gt;
print(&amp;quot;Speakers:&amp;quot;, speakers_path)&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    model_path, config_path, speakers_path, None, None, None,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Mostra els parlants disponibles&lt;br /&gt;
print(&amp;quot;Parlants disponibles:&amp;quot;, synthesizer.tts_model.speaker_manager.speaker_names[:10])&lt;br /&gt;
&lt;br /&gt;
text = &amp;quot;Bon dia! Això és una prova de síntesi de veu en català.&amp;quot;&lt;br /&gt;
speaker = synthesizer.tts_model.speaker_manager.speaker_names[0]&lt;br /&gt;
&lt;br /&gt;
wav = synthesizer.tts(text, speaker_name=speaker)&lt;br /&gt;
synthesizer.save_wav(wav, &amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
print(&amp;quot;Fet! Genera't: prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dóna un error que el Claude el sap solucionar:&lt;br /&gt;
&lt;br /&gt;
Substitueix la crida al Synthesizer per:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    tts_checkpoint=model_path,&lt;br /&gt;
    tts_config_path=config_path,&lt;br /&gt;
    tts_speakers_file=speakers_path,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puc provar amb els parlants: 'mar' (833), 'ona'(834), 'pau'(835), 'pep'(836), 'pol'(837), 'teo'(838), 'uri'(839)&lt;br /&gt;
&lt;br /&gt;
hi ha 840 parlants.&lt;br /&gt;
&lt;br /&gt;
per tant els índex d'aquests són: 833, 834, 835, 836, 837, 838, 839&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables. &lt;br /&gt;
&lt;br /&gt;
aquestes veus (Festcat) es corresponen totes a parlants de català central. uri seria una mica unisex.&lt;br /&gt;
&lt;br /&gt;
Però n'hi ha moltes d'altres de veus (840 parlants)&lt;br /&gt;
&lt;br /&gt;
Sobre les 840 veus&lt;br /&gt;
&lt;br /&gt;
La fitxa del model parla de 255 parlants, però tu en veus 840. No ho he trobat documentat, però és habitual en models de Coqui que el fitxer speakers.pth inclogui tots els identificadors que apareixien a les dades de partida. Això no vol dir que tots tinguin prou material d'entrenament. A Common Voice molts voluntaris només han gravat unes poques frases, i és probable que el model hagi après molt poc d'aquests parlants.&lt;br /&gt;
&lt;br /&gt;
A la pràctica, això fa que la qualitat sigui molt desigual:&lt;br /&gt;
&lt;br /&gt;
* Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables.&lt;br /&gt;
* Els parlants de Common Voice amb moltes gravacions poden sonar bé, però amb el soroll i la variabilitat de gravacions casolanes.&lt;br /&gt;
* Els parlants amb molt poques gravacions sovint sonen genèrics, inestables o amb artefactes.&lt;br /&gt;
&lt;br /&gt;
editar el config.json&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls -la /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
joe /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i en el config.json apuntem la ruta real:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;speakers_file&amp;quot;: &amp;quot;/home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/speakers.pth&amp;quot;,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tornem a provar, i finalment ha funcionat!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 prova.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
7955f7d04b0a4ba49c653677f215265658afde6e89fdd2391eb714531056']&lt;br /&gt;
Fet! Genera't: prova.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara sí que se sent molt bé!&lt;br /&gt;
&lt;br /&gt;
Per tant, ja tinc un codi per fer síntesi de veu en català amb una veu molt bona&lt;br /&gt;
&lt;br /&gt;
Puc provar els altres speaker_names i els altres models&lt;br /&gt;
&lt;br /&gt;
he provat fins a 15 veus, i sembla ser que encara n'hi ha més. El model que he provat és: tts-ca-coqui-vits-multispeaker&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/projecte-aina/tts-ca-coqui-vits-multispeaker&lt;br /&gt;
* https://huggingface.co/spaces/softcatala/comparativa-tts-catala&lt;br /&gt;
&lt;br /&gt;
'''NOTA''': com que ja tenia aquesta part funcionant, ara vaig voler continuar amb el RVC per fer clonació. Però les millors proves de clonació les he aconseguit amb el model de síntesi del Matxa v2, que no necessita espeak-ng.&lt;br /&gt;
&lt;br /&gt;
===Les veus només són en català central===&lt;br /&gt;
Amb el script prova.py m'he generat les veus dels 840 speakers, i després de mirar els 30 primers, tots es corresponen de moment a català central. Espero trobar entre les veus accent de Lleida, de València i de Mallorca, però no els veig. Estic fent alguna cosa malament, espero trobar diversitat dialectal&lt;br /&gt;
&lt;br /&gt;
No estàs fent res malament. És una limitació del model: amb aquest model no trobaràs accents diferents del central, i és normal que no aparegui la diversitat que busques. Per què totes les veus sonen a català central?&lt;br /&gt;
&lt;br /&gt;
El model no llegeix el text directament. Primer el converteix en fonemes amb '''espeak-ng''' configurat amb l'idioma ca, i aquesta transcripció segueix la pronúncia del català central. Per tant, trets com la reducció vocàlica (a/e àtones → [ə]) o la -r final muda ja vénen decidits abans d'arribar a la veu.&lt;br /&gt;
&lt;br /&gt;
El parlant escollit només canvia el timbre, el to i una mica la prosòdia. Encara que el parlant original fos de València o de Mallorca, el model li fa pronunciar els fonemes centrals, i el resultat és una veu valenciana &amp;quot;llegint en central&amp;quot;. A més, a Common Voice els parlants de català central són clarament majoritaris, cosa que reforça aquest biaix.&lt;br /&gt;
&lt;br /&gt;
L'alternativa: un model multidialectal&lt;br /&gt;
&lt;br /&gt;
El BSC ha publicat Matxa, un model pensat precisament per això. Funciona juntament amb el vocoder alVoCat i genera veu en quatre dialectes: balear, central, nord-occidental i valencià. Per tant, no necessita el espeak-ng perquè la manera de sintetitzar la veu (el vocoder) no està basat en fonemes.&lt;br /&gt;
&lt;br /&gt;
=3a prova: Síntesi de veu amb Matxa v2 (multidialectal)=&lt;br /&gt;
&lt;br /&gt;
L'alternativa: un model multidialectal&lt;br /&gt;
&lt;br /&gt;
El BSC ha publicat Matxa, un model pensat precisament per això. Funciona juntament amb el vocoder alVoCat i genera veu en quatre dialectes: balear, central, nord-occidental i valencià. Té dues veus per dialecte: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accent	Veus (speaker_id)	Cleaner&lt;br /&gt;
Balear	quim (0), olga (1)	catalan_balear_cleaners&lt;br /&gt;
Central	grau (2), elia (3)	catalan_cleaners&lt;br /&gt;
Nord-occidental (Lleida)	pere (4), emma (5)	catalan_occidental_cleaners&lt;br /&gt;
Valencià	lluc (6), gina (7)	catalan_valencia_cleaners&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podem escoltar totes les veus aquí: (versió v1)&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/spaces/projecte-aina/matxa-alvocat-tts-ca&lt;br /&gt;
&lt;br /&gt;
Versió 2&lt;br /&gt;
* https://huggingface.co/BSC-LT/matxa-tts-v2-ca-multiaccent-graphemes&lt;br /&gt;
&lt;br /&gt;
Matxa is a multispeaker multidialect TTS model which uses 🥑 alVoCat as a vocoder. They are based on Matcha-TTS and Vocos architectures.&lt;br /&gt;
&lt;br /&gt;
Existeix una '''versió 2''' del model, basada en '''grafemes''', que cobreix 5 dialectes. Com que ja no depèn d'espeak, probablement és més fàcil d'instal·lar. Val la pena mirar-la primer. &lt;br /&gt;
&lt;br /&gt;
Què dóna més bon resultat, la versió 1 o la versió 2?&lt;br /&gt;
&lt;br /&gt;
Per al teu cas, probablement la versió 2, tot i que no hi ha cap comparació publicada directament entre les dues versions.&lt;br /&gt;
&lt;br /&gt;
Què diuen les dades? El BSC compara la v2 (basada en grafemes) amb el mateix model entrenat amb fonemes, no pas amb la v1. Els resultats són:&lt;br /&gt;
&lt;br /&gt;
* Qualitat d'àudio: la versió amb fonemes treu una mica més de puntuació (ScoreQ 3,37 i 3,46 davant de 3,29 i 3,30 per a la de grafemes). La diferència és petita.&lt;br /&gt;
* Intel·ligibilitat: la versió amb grafemes s'entén clarament millor, amb una taxa d'error de paraules d'aproximadament 9,4 i 9,2, davant de 12,4 i 11,5.&lt;br /&gt;
&lt;br /&gt;
És a dir, la de grafemes s'entén millor i la seva qualitat d'àudio és comparable.&lt;br /&gt;
&lt;br /&gt;
Més veus i més dialectes. A més de les 8 veus de la v1, n'afegeix més. Hi ha 16 veus en total:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accent	Veus (ID a la v2)&lt;br /&gt;
Balear	Quim (0), Olga (1), BM (10)&lt;br /&gt;
Central	Grau (2), Elia (3), CF (11), CM (12)&lt;br /&gt;
Nord-occidental	Pere (4), Emma (5), Estel (13)&lt;br /&gt;
Valencià	Gina (6), Lluc (7), Arnau (8), Berta (9)&lt;br /&gt;
Septentrional	Laura (14), Jordi (15)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tot són gravacions d'estudi. El model s'ha entrenat des de zero amb LaFresCat i altres enregistraments catalans multiaccent de qualitat d'estudi (ReFresCat i EnVeuAlta).&lt;br /&gt;
Més fàcil d'instal·lar. No necessita fonemitzador, així que t'estalvies compilar espeak-ng. També té millores d'arquitectura: un descodificador més gran i un filtre de soroll aplicat en la inferència.&lt;br /&gt;
&lt;br /&gt;
Està documentat aquí:&lt;br /&gt;
https://huggingface.co/BSC-LT/matxa-tts-v2-ca-multiaccent-graphemes&lt;br /&gt;
&lt;br /&gt;
1. Crea i activa el venv&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv-matxa-v2 -&amp;gt; aquí hauria d'haver creat primer la carpeta ''Matcha-TTS/'', i que el venv estigués a dins, però és igual&lt;br /&gt;
source venv-matxa-v2/bin/activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Clona la branca de la v2&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b v2-graphemes --single-branch https://github.com/langtech-bsc/Matcha-TTS.git&lt;br /&gt;
cd Matcha-TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la Cython i numpy abans que res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install Cython numpy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Instal·la el paquet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Genera el primer àudio&lt;br /&gt;
La primera vegada, el script descarrega automàticament el model i el vocoder alVoCat de Hugging Face:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python matxa_graphemes_alvocat_inference.py \&lt;br /&gt;
  BSC-LT/matxa-tts-v2-ca-multiaccent-graphemes \&lt;br /&gt;
  projecte-aina/alvocat-vocos-22khz \&lt;br /&gt;
  --output_path /home/joan/projectes \&lt;br /&gt;
  --text_input &amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot; \&lt;br /&gt;
  --speaker_id 6 # Gina valencià D&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pots ajustar la síntesi amb aquests paràmetres:&lt;br /&gt;
&lt;br /&gt;
* --length_scale controla la velocitat. Per defecte val 0,9, i com més alt, més lent.&lt;br /&gt;
* --temperature controla la variabilitat de l'entonació. Per defecte val 0,7.&lt;br /&gt;
&lt;br /&gt;
script per fer la comparativa de totes les veus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python genera_veus.py&lt;br /&gt;
&lt;br /&gt;
python genera_veus.py --text &amp;quot;La seva gerra sembla molt antiga.&amp;quot; --output_dir proves&lt;br /&gt;
python genera_veus.py --veus 6 7 8 9          # només les valencianes&lt;br /&gt;
python genera_veus.py --length_scale 1.0      # una mica més lent&lt;br /&gt;
&lt;br /&gt;
python genera_veus.py --text &amp;quot;La seva gerra sembla molt antiga.&amp;quot; --output_dir /home/joan/projectes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299243</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299243"/>
		<updated>2026-10-10T23:30:07Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi/clonació. És a dir, jo el que volia fer aquí ja és la clonació. Aquesta tècnica s'emmarca amb la tècnica de clonació directa amb un model zero-shot multilingüe. Models com F5-TTS permeten clonar una veu a partir només d'uns segons d'àudio i generar directament en l'idioma objectiu. Els models que es poden fer servir són XTTS-v2 (Coqui), F5-TTS o GPT-SoVITS (estic provant F5-TTS), i el problema és que cap d'aquests models té el català com a idioma oficialment suportat de sèrie.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
=2a prova: model VITS=&lt;br /&gt;
&lt;br /&gt;
2a prova per a la síntesi d'una veu en català&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Abans de fer la clonació de veu primer he de fer síntesi de veu en català. S'ha de separar el problema en dos passos:&lt;br /&gt;
&lt;br /&gt;
- Genera la parla en català amb un model ja entrenat pel Projecte Aina (BSC), com Matxa-TTS o el VITS multi-parlant (projecte-aina/tts-ca-coqui-vits-multispeaker) — és la primera solució tecnològica publicada com a model lingüístic en obert que ofereix interpretació de text a veu en català central, nord-occidental, balear i valencià, disponible a Hugging Face. &lt;br /&gt;
- Converteix el timbre a la teva veu amb una eina de voice conversion com RVC (Retrieval-based Voice Conversion) o so-vits-svc. Entrenes un model petit amb ~10-30 minuts d’àudio net de la teva veu (parlant en qualsevol idioma, fins i tot) i li apliques la sortida del TTS català. El model de conversió només ha d’aprendre el ''color'' de la teva veu, no l'idioma, així que funciona molt bé i és ràpid d’entrenar amb 16GB. Aquest segon pas és la ''clonació de veu'', i la desenvolupo en una altra entrada. Ara ens centrarem només en la síntesi.&lt;br /&gt;
&lt;br /&gt;
Anem a fer dons la síntesi de veu en català.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/veu-catala &amp;amp;&amp;amp; cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate    # a Windows: venv\Scripts\activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Recordem que estem seguint:&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Primer instal·lem PyTorch. Aquí el Claude em fa un avís: La teva 5060 Ti és arquitectura Blackwell (sm_120). Si instal·les PyTorch “normal” (per exemple amb CUDA 12.1 o 12.4), et donarà l’error CUDA capability sm_120 is not compatible. Necessites la build amb CUDA 12.8 o superior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i comprovem que ho detecta bé:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També necessitem com a dependència:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install ffmpeg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja podem instal·lar TTS (llibreria coqui-tts, compatible amb els models VITS del BSC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install TTS &lt;br /&gt;
ERROR: Ignored the following versions that require a different python version: 0.0.10.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.10.3 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.11 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.12 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.14.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.9 Requires-Python ... &amp;gt;=3.7.0,&amp;lt;3.11; 0.7.1 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.8.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.9.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11&lt;br /&gt;
ERROR: Could not find a version that satisfies the requirement TTS (from versions: none)&lt;br /&gt;
ERROR: No matching distribution found for TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Confirmat: el paquet TTS original de Coqui està abandonat (l'empresa va tancar) i el darrer release no accepta Python ≥3.12, que és probablement el que tens instal·lat. Hi ha un fork actiu mantingut per Idiap que ha canviat de nom a coqui-tts.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install coqui-tts -&amp;gt; ara sí&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aquest fork suporta Python 3.10 fins a &amp;lt;3.13 (i les últimes versions ja arriben fins &amp;lt;3.14). Si el teu python3 --version et dona 3.13 o més nou, hauràs de crear el venv amb una versió compatible:&lt;br /&gt;
&lt;br /&gt;
Prova ràpida amb el model multi-parlant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però dóna un error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
ImportError: cannot import name 'isin_mps_friendly' from 'transformers.pytorch_utils' (/home/joan/veu-catala/venv/lib/python3.12/site-packages/transformers/pytorch_utils.py)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Trobat exactament: és un problema conegut i molt recent — transformers 5.x va eliminar la funció isin_mps_friendly que coqui-tts encara fa servir internament (a TTS/tts/layers/tortoise/autoregressive.py). Se't deu haver instal·lat automàticament una versió massa nova de transformers.&lt;br /&gt;
&lt;br /&gt;
Solució&lt;br /&gt;
&lt;br /&gt;
Fixa transformers a una versió anterior a la 5.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install &amp;quot;transformers==4.57.6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$ pip show transformers&lt;br /&gt;
Name: transformers&lt;br /&gt;
Version: 4.57.6&lt;br /&gt;
&lt;br /&gt;
$ python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara sí!&lt;br /&gt;
&lt;br /&gt;
Ja puc fer la prova de síntesi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;,&lt;br /&gt;
                 speaker=&amp;quot;ona&amp;quot;,&lt;br /&gt;
                 file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Els models que podem fer servir estan aquí:&lt;br /&gt;
*https://huggingface.co/spaces/projecte-aina/catalan_tts_arena&lt;br /&gt;
i són:&lt;br /&gt;
* Vits 2&lt;br /&gt;
* Matxa-TTS&lt;br /&gt;
* Matxa-TTS-multiaccent -&amp;gt; aquest és el Matxa v2 (multiaccent), i és el que acabaré fent servir finalment&lt;br /&gt;
* StableTTS&lt;br /&gt;
* StyleTTS 2&lt;br /&gt;
&lt;br /&gt;
Canvio el codi per al model vits:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FileNotFoundError: [!] No espeak backend found. Install espeak-ng or espeak to your system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
primer he d'instal·lar espeak-ng&lt;br /&gt;
&lt;br /&gt;
==Instal·lació espeak-ng==&lt;br /&gt;
&lt;br /&gt;
'''NOTA1''': aquest procés el faig dues vegades, perquè la primera vegada l'he fet fora del venv, i la segona vegada dins del venv, que seria el correcte.&lt;br /&gt;
&lt;br /&gt;
'''NOTA2''': el model de síntesi que faré servir finalment serà el Matxa V2, que funciona per grafemes, i això vol dir que aquest model no necessita el espeak-ng.&lt;br /&gt;
&lt;br /&gt;
Instal·lo espeak-ng a la màquina, fora d'un venv, perquè ho faré servir bastant.&lt;br /&gt;
&lt;br /&gt;
previ, les eines de make per compilar projectes C:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install autoconf automake libtool-bin pkg-config build-essential&lt;br /&gt;
&lt;br /&gt;
$ which aclocal&lt;br /&gt;
/usr/bin/aclocal&lt;br /&gt;
&lt;br /&gt;
$ aclocal --version&lt;br /&gt;
aclocal (GNU automake) 1.16.5&lt;br /&gt;
&lt;br /&gt;
sudo apt install libtool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh -&amp;gt; crec que dóna error...&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
(ara ja funciona)&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja ho tinc instal·lat.&lt;br /&gt;
&lt;br /&gt;
Exportem les variables d'entorn&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTA: Val la pena afegir aquestes tres línies al final del ~/.bashrc (o a un script activate_env.sh propi que sourregis cada cop abans de treballar-hi), perquè si no les hauràs de tornar a exportar cada vegada que obris terminal nova.&lt;br /&gt;
&lt;br /&gt;
4. Un parell de dependències més que demana Aina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTA''': he fet el fallo que ho hauria d'haver fet amb el venv del projecte que estava fent. Per tant, torno a activar el venv i faig la instal·lació del espeak-ng&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(torno a estar dins del venv, i torno a fer la instal·lació del espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ espeak-ng --voices=ca&lt;br /&gt;
Pty Language       Age/Gender VoiceName          File                 Other Languages&lt;br /&gt;
 5  ca              --/M      Catalan            roa/ca               &lt;br /&gt;
 5  ca-ba           --/M      Catalan_(Balearic) roa/ca-ba            &lt;br /&gt;
 5  ca-nw           --/M      Catalan_(North-western) roa/ca-nw            &lt;br /&gt;
 5  ca-va           --/M      Catalan_(Valencian) roa/ca-va &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Síntesi de veu amb vits==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja tinc la llibreria TTS instal·lada.&lt;br /&gt;
&lt;br /&gt;
(en aquest punt hauria de recordar de com funciona espeak-ng)&lt;br /&gt;
&lt;br /&gt;
Ja puc continuar en el punt on estava abans, de fer una prova de síntesi: (recordem que ara, per acabar de fer la síntesi, es farà servir espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja ho tinc, ho ha fet bastant bé, amb algun error. Puc provar els altres models, o altres speakers.&lt;br /&gt;
&lt;br /&gt;
Tinc aquest codi, que no funciona massa bé:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* quins són els models que puc fer servir en comptes de &amp;quot;tts_models/ca/custom/vits&amp;quot;?&lt;br /&gt;
* quins són els speakers que puc fer servir a més d'&amp;quot;ona&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
&lt;br /&gt;
models = TTS().list_models()&lt;br /&gt;
# Segons la versió, list_models() retorna una llista o un objecte ModelManager&lt;br /&gt;
noms = models if isinstance(models, list) else models.list_models()&lt;br /&gt;
print([m for m in noms if &amp;quot;/ca/&amp;quot; in m or &amp;quot;/cat/&amp;quot; in m])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Retorna:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
['tts_models/ca/custom/vits']&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
només em retorna un model:&lt;br /&gt;
&lt;br /&gt;
tts_models/ca/custom/vits: el que ja fas servir. És multi-speaker, entrenat amb dades de Festcat i Google Catalan.&lt;br /&gt;
&lt;br /&gt;
Vull mirar tots els speakers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;)&lt;br /&gt;
print(tts.speakers)&lt;br /&gt;
...', 'jan', 'mar', 'ona', 'pau', 'pep', 'pol', 'teo']&lt;br /&gt;
&lt;br /&gt;
for s in tts.speakers[:10]:&lt;br /&gt;
    tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova.&amp;quot;, speaker=s, file_path=f&amp;quot;/home/joan/projectes/t001_{s}.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'/home/joan/projectes/t001_00236e350cc84b94a6684f182acf96e68963d7fa1164d4fa56da20f46f210b2dd3ecf189e97fb3c94113a54c12dc20550508f5b7b9b37e1873898d58a308feb5.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00459.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00762.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00983a845f95493fb27125b114c635f3b40060efaee167d32d8a3dd040c877713446c7bd3e6944641227bdb4165ecb8d684ec2ef66c817e65e77c52cc50e62ed.wav'&lt;br /&gt;
'/home/joan/projectes/t001_01591.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02452.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02689.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02992.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02f7d61edf5063ca42953b1068539f1572985aa9448555cfd8d7667121eeedc72c912d95cf33abf61a1f9620f2a01be4251a53aa5440d15849003fb31210d830.wav'&lt;br /&gt;
'/home/joan/projectes/t001_03115.wav'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I canvio la línia i provo les diferents veus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;jan&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_jan.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;mar&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_mar.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_ona.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pau&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pau.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pep&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pep.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pol&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pol.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;teo&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_teo.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La qualitat no és molt bona:&lt;br /&gt;
&lt;br /&gt;
* La llibreria original TTS de Coqui ja no es manté, perquè l'empresa va tancar. El fork mantingut és coqui-tts (pip install coqui-tts), que funciona amb el mateix codi i sol donar menys problemes amb versions noves de Python i PyTorch.&lt;br /&gt;
* El Projecte AINA (BSC) ha publicat models catalans més recents a Hugging Face, com Matxa amb el vocoder alVoCat, que tenen diversos accents i solen sonar més naturals. No es carreguen amb TTS(...): tenen el seu propi codi d'inferència. -&amp;gt; '''aquest és el que farem servir'''&lt;br /&gt;
&lt;br /&gt;
Un codi més complet és el que em proposa Claude: (que és el model del projecte AINA (BSC))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install huggingface_hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''prova.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import glob&lt;br /&gt;
from huggingface_hub import snapshot_download&lt;br /&gt;
from TTS.utils.synthesizer import Synthesizer&lt;br /&gt;
&lt;br /&gt;
# Baixa el model (només cal la primera vegada, es queda en cau)&lt;br /&gt;
model_dir = snapshot_download(repo_id=&amp;quot;projecte-aina/tts-ca-coqui-vits-multispeaker&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Localitza els fitxers dins la carpeta &amp;quot;model&amp;quot;&lt;br /&gt;
config_path = f&amp;quot;{model_dir}/model/config.json&amp;quot;&lt;br /&gt;
speakers_path = glob.glob(f&amp;quot;{model_dir}/model/speakers*.pth&amp;quot;)[0]&lt;br /&gt;
checkpoint_candidates = [&lt;br /&gt;
    p for p in glob.glob(f&amp;quot;{model_dir}/model/*.pth&amp;quot;)&lt;br /&gt;
    if &amp;quot;speakers&amp;quot; not in p&lt;br /&gt;
]&lt;br /&gt;
model_path = checkpoint_candidates[0]&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Checkpoint:&amp;quot;, model_path)&lt;br /&gt;
print(&amp;quot;Config:&amp;quot;, config_path)&lt;br /&gt;
print(&amp;quot;Speakers:&amp;quot;, speakers_path)&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    model_path, config_path, speakers_path, None, None, None,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Mostra els parlants disponibles&lt;br /&gt;
print(&amp;quot;Parlants disponibles:&amp;quot;, synthesizer.tts_model.speaker_manager.speaker_names[:10])&lt;br /&gt;
&lt;br /&gt;
text = &amp;quot;Bon dia! Això és una prova de síntesi de veu en català.&amp;quot;&lt;br /&gt;
speaker = synthesizer.tts_model.speaker_manager.speaker_names[0]&lt;br /&gt;
&lt;br /&gt;
wav = synthesizer.tts(text, speaker_name=speaker)&lt;br /&gt;
synthesizer.save_wav(wav, &amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
print(&amp;quot;Fet! Genera't: prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dóna un error que el Claude el sap solucionar:&lt;br /&gt;
&lt;br /&gt;
Substitueix la crida al Synthesizer per:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    tts_checkpoint=model_path,&lt;br /&gt;
    tts_config_path=config_path,&lt;br /&gt;
    tts_speakers_file=speakers_path,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puc provar amb els parlants: 'mar' (833), 'ona'(834), 'pau'(835), 'pep'(836), 'pol'(837), 'teo'(838), 'uri'(839)&lt;br /&gt;
&lt;br /&gt;
hi ha 840 parlants.&lt;br /&gt;
&lt;br /&gt;
per tant els índex d'aquests són: 833, 834, 835, 836, 837, 838, 839&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables. &lt;br /&gt;
&lt;br /&gt;
aquestes veus (Festcat) es corresponen totes a parlants de català central. uri seria una mica unisex.&lt;br /&gt;
&lt;br /&gt;
Però n'hi ha moltes d'altres de veus (840 parlants)&lt;br /&gt;
&lt;br /&gt;
Sobre les 840 veus&lt;br /&gt;
&lt;br /&gt;
La fitxa del model parla de 255 parlants, però tu en veus 840. No ho he trobat documentat, però és habitual en models de Coqui que el fitxer speakers.pth inclogui tots els identificadors que apareixien a les dades de partida. Això no vol dir que tots tinguin prou material d'entrenament. A Common Voice molts voluntaris només han gravat unes poques frases, i és probable que el model hagi après molt poc d'aquests parlants.&lt;br /&gt;
&lt;br /&gt;
A la pràctica, això fa que la qualitat sigui molt desigual:&lt;br /&gt;
&lt;br /&gt;
* Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables.&lt;br /&gt;
* Els parlants de Common Voice amb moltes gravacions poden sonar bé, però amb el soroll i la variabilitat de gravacions casolanes.&lt;br /&gt;
* Els parlants amb molt poques gravacions sovint sonen genèrics, inestables o amb artefactes.&lt;br /&gt;
&lt;br /&gt;
editar el config.json&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls -la /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
joe /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i en el config.json apuntem la ruta real:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;speakers_file&amp;quot;: &amp;quot;/home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/speakers.pth&amp;quot;,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tornem a provar, i finalment ha funcionat!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 prova.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
7955f7d04b0a4ba49c653677f215265658afde6e89fdd2391eb714531056']&lt;br /&gt;
Fet! Genera't: prova.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara sí que se sent molt bé!&lt;br /&gt;
&lt;br /&gt;
Per tant, ja tinc un codi per fer síntesi de veu en català amb una veu molt bona&lt;br /&gt;
&lt;br /&gt;
Puc provar els altres speaker_names i els altres models&lt;br /&gt;
&lt;br /&gt;
he provat fins a 15 veus, i sembla ser que encara n'hi ha més. El model que he provat és: tts-ca-coqui-vits-multispeaker&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/projecte-aina/tts-ca-coqui-vits-multispeaker&lt;br /&gt;
* https://huggingface.co/spaces/softcatala/comparativa-tts-catala&lt;br /&gt;
&lt;br /&gt;
'''NOTA''': com que ja tenia aquesta part funcionant, ara vaig voler continuar amb el RVC per fer clonació. Però les millors proves de clonació les he aconseguit amb el model de síntesi del Matxa v2, que no necessita espeak-ng.&lt;br /&gt;
&lt;br /&gt;
===Les veus només són en català central===&lt;br /&gt;
Amb el script prova.py m'he generat les veus dels 840 speakers, i després de mirar els 30 primers, tots es corresponen de moment a català central. Espero trobar entre les veus accent de Lleida, de València i de Mallorca, però no els veig. Estic fent alguna cosa malament, espero trobar diversitat dialectal&lt;br /&gt;
&lt;br /&gt;
No estàs fent res malament. És una limitació del model: amb aquest model no trobaràs accents diferents del central, i és normal que no aparegui la diversitat que busques. Per què totes les veus sonen a català central?&lt;br /&gt;
&lt;br /&gt;
El model no llegeix el text directament. Primer el converteix en fonemes amb '''espeak-ng''' configurat amb l'idioma ca, i aquesta transcripció segueix la pronúncia del català central. Per tant, trets com la reducció vocàlica (a/e àtones → [ə]) o la -r final muda ja vénen decidits abans d'arribar a la veu.&lt;br /&gt;
&lt;br /&gt;
El parlant escollit només canvia el timbre, el to i una mica la prosòdia. Encara que el parlant original fos de València o de Mallorca, el model li fa pronunciar els fonemes centrals, i el resultat és una veu valenciana &amp;quot;llegint en central&amp;quot;. A més, a Common Voice els parlants de català central són clarament majoritaris, cosa que reforça aquest biaix.&lt;br /&gt;
&lt;br /&gt;
L'alternativa: un model multidialectal&lt;br /&gt;
&lt;br /&gt;
El BSC ha publicat Matxa, un model pensat precisament per això. Funciona juntament amb el vocoder alVoCat i genera veu en quatre dialectes: balear, central, nord-occidental i valencià. Per tant, no necessita el espeak-ng perquè la manera de sintetitzar la veu (el vocoder) no està basat en fonemes.&lt;br /&gt;
&lt;br /&gt;
=Síntesi de veu amb Matxa v2=&lt;br /&gt;
&lt;br /&gt;
L'alternativa: un model multidialectal&lt;br /&gt;
&lt;br /&gt;
El BSC ha publicat Matxa, un model pensat precisament per això. Funciona juntament amb el vocoder alVoCat i genera veu en quatre dialectes: balear, central, nord-occidental i valencià. Té dues veus per dialecte: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accent	Veus (speaker_id)	Cleaner&lt;br /&gt;
Balear	quim (0), olga (1)	catalan_balear_cleaners&lt;br /&gt;
Central	grau (2), elia (3)	catalan_cleaners&lt;br /&gt;
Nord-occidental (Lleida)	pere (4), emma (5)	catalan_occidental_cleaners&lt;br /&gt;
Valencià	lluc (6), gina (7)	catalan_valencia_cleaners&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podem escoltar totes les veus aquí: (versió v1)&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/spaces/projecte-aina/matxa-alvocat-tts-ca&lt;br /&gt;
&lt;br /&gt;
Versió 2&lt;br /&gt;
* https://huggingface.co/BSC-LT/matxa-tts-v2-ca-multiaccent-graphemes&lt;br /&gt;
&lt;br /&gt;
Matxa is a multispeaker multidialect TTS model which uses 🥑 alVoCat as a vocoder. They are based on Matcha-TTS and Vocos architectures.&lt;br /&gt;
&lt;br /&gt;
Existeix una '''versió 2''' del model, basada en '''grafemes''', que cobreix 5 dialectes. Com que ja no depèn d'espeak, probablement és més fàcil d'instal·lar. Val la pena mirar-la primer. &lt;br /&gt;
&lt;br /&gt;
Què dóna més bon resultat, la versió 1 o la versió 2?&lt;br /&gt;
&lt;br /&gt;
Per al teu cas, probablement la versió 2, tot i que no hi ha cap comparació publicada directament entre les dues versions.&lt;br /&gt;
&lt;br /&gt;
Què diuen les dades? El BSC compara la v2 (basada en grafemes) amb el mateix model entrenat amb fonemes, no pas amb la v1. Els resultats són:&lt;br /&gt;
&lt;br /&gt;
* Qualitat d'àudio: la versió amb fonemes treu una mica més de puntuació (ScoreQ 3,37 i 3,46 davant de 3,29 i 3,30 per a la de grafemes). La diferència és petita.&lt;br /&gt;
* Intel·ligibilitat: la versió amb grafemes s'entén clarament millor, amb una taxa d'error de paraules d'aproximadament 9,4 i 9,2, davant de 12,4 i 11,5.&lt;br /&gt;
&lt;br /&gt;
És a dir, la de grafemes s'entén millor i la seva qualitat d'àudio és comparable.&lt;br /&gt;
&lt;br /&gt;
Més veus i més dialectes. A més de les 8 veus de la v1, n'afegeix més. Hi ha 16 veus en total:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accent	Veus (ID a la v2)&lt;br /&gt;
Balear	Quim (0), Olga (1), BM (10)&lt;br /&gt;
Central	Grau (2), Elia (3), CF (11), CM (12)&lt;br /&gt;
Nord-occidental	Pere (4), Emma (5), Estel (13)&lt;br /&gt;
Valencià	Gina (6), Lluc (7), Arnau (8), Berta (9)&lt;br /&gt;
Septentrional	Laura (14), Jordi (15)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tot són gravacions d'estudi. El model s'ha entrenat des de zero amb LaFresCat i altres enregistraments catalans multiaccent de qualitat d'estudi (ReFresCat i EnVeuAlta).&lt;br /&gt;
Més fàcil d'instal·lar. No necessita fonemitzador, així que t'estalvies compilar espeak-ng. També té millores d'arquitectura: un descodificador més gran i un filtre de soroll aplicat en la inferència.&lt;br /&gt;
&lt;br /&gt;
Està documentat aquí:&lt;br /&gt;
https://huggingface.co/BSC-LT/matxa-tts-v2-ca-multiaccent-graphemes&lt;br /&gt;
&lt;br /&gt;
1. Crea i activa el venv&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv-matxa-v2 -&amp;gt; aquí hauria d'haver creat primer la carpeta ''Matcha-TTS/'', i que el venv estigués a dins, però és igual&lt;br /&gt;
source venv-matxa-v2/bin/activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Clona la branca de la v2&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone -b v2-graphemes --single-branch https://github.com/langtech-bsc/Matcha-TTS.git&lt;br /&gt;
cd Matcha-TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la Cython i numpy abans que res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install Cython numpy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Instal·la el paquet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. Genera el primer àudio&lt;br /&gt;
La primera vegada, el script descarrega automàticament el model i el vocoder alVoCat de Hugging Face:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python matxa_graphemes_alvocat_inference.py \&lt;br /&gt;
  BSC-LT/matxa-tts-v2-ca-multiaccent-graphemes \&lt;br /&gt;
  projecte-aina/alvocat-vocos-22khz \&lt;br /&gt;
  --output_path /home/joan/projectes \&lt;br /&gt;
  --text_input &amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot; \&lt;br /&gt;
  --speaker_id 6 # Gina valencià D&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pots ajustar la síntesi amb aquests paràmetres:&lt;br /&gt;
&lt;br /&gt;
* --length_scale controla la velocitat. Per defecte val 0,9, i com més alt, més lent.&lt;br /&gt;
* --temperature controla la variabilitat de l'entonació. Per defecte val 0,7.&lt;br /&gt;
&lt;br /&gt;
script per fer la comparativa de totes les veus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python genera_veus.py&lt;br /&gt;
&lt;br /&gt;
python genera_veus.py --text &amp;quot;La seva gerra sembla molt antiga.&amp;quot; --output_dir proves&lt;br /&gt;
python genera_veus.py --veus 6 7 8 9          # només les valencianes&lt;br /&gt;
python genera_veus.py --length_scale 1.0      # una mica més lent&lt;br /&gt;
&lt;br /&gt;
python genera_veus.py --text &amp;quot;La seva gerra sembla molt antiga.&amp;quot; --output_dir /home/joan/projectes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299242</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299242"/>
		<updated>2026-10-10T23:14:37Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Síntesi de veu amb vits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi/clonació. És a dir, jo el que volia fer aquí ja és la clonació. Aquesta tècnica s'emmarca amb la tècnica de clonació directa amb un model zero-shot multilingüe. Models com F5-TTS permeten clonar una veu a partir només d'uns segons d'àudio i generar directament en l'idioma objectiu. Els models que es poden fer servir són XTTS-v2 (Coqui), F5-TTS o GPT-SoVITS (estic provant F5-TTS), i el problema és que cap d'aquests models té el català com a idioma oficialment suportat de sèrie.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
=2a prova: model VITS=&lt;br /&gt;
&lt;br /&gt;
2a prova per a la síntesi d'una veu en català&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Abans de fer la clonació de veu primer he de fer síntesi de veu en català. S'ha de separar el problema en dos passos:&lt;br /&gt;
&lt;br /&gt;
- Genera la parla en català amb un model ja entrenat pel Projecte Aina (BSC), com Matxa-TTS o el VITS multi-parlant (projecte-aina/tts-ca-coqui-vits-multispeaker) — és la primera solució tecnològica publicada com a model lingüístic en obert que ofereix interpretació de text a veu en català central, nord-occidental, balear i valencià, disponible a Hugging Face. &lt;br /&gt;
- Converteix el timbre a la teva veu amb una eina de voice conversion com RVC (Retrieval-based Voice Conversion) o so-vits-svc. Entrenes un model petit amb ~10-30 minuts d’àudio net de la teva veu (parlant en qualsevol idioma, fins i tot) i li apliques la sortida del TTS català. El model de conversió només ha d’aprendre el ''color'' de la teva veu, no l'idioma, així que funciona molt bé i és ràpid d’entrenar amb 16GB. Aquest segon pas és la ''clonació de veu'', i la desenvolupo en una altra entrada. Ara ens centrarem només en la síntesi.&lt;br /&gt;
&lt;br /&gt;
Anem a fer dons la síntesi de veu en català.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/veu-catala &amp;amp;&amp;amp; cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate    # a Windows: venv\Scripts\activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Recordem que estem seguint:&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Primer instal·lem PyTorch. Aquí el Claude em fa un avís: La teva 5060 Ti és arquitectura Blackwell (sm_120). Si instal·les PyTorch “normal” (per exemple amb CUDA 12.1 o 12.4), et donarà l’error CUDA capability sm_120 is not compatible. Necessites la build amb CUDA 12.8 o superior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i comprovem que ho detecta bé:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També necessitem com a dependència:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install ffmpeg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja podem instal·lar TTS (llibreria coqui-tts, compatible amb els models VITS del BSC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install TTS &lt;br /&gt;
ERROR: Ignored the following versions that require a different python version: 0.0.10.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.10.3 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.11 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.12 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.14.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.9 Requires-Python ... &amp;gt;=3.7.0,&amp;lt;3.11; 0.7.1 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.8.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.9.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11&lt;br /&gt;
ERROR: Could not find a version that satisfies the requirement TTS (from versions: none)&lt;br /&gt;
ERROR: No matching distribution found for TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Confirmat: el paquet TTS original de Coqui està abandonat (l'empresa va tancar) i el darrer release no accepta Python ≥3.12, que és probablement el que tens instal·lat. Hi ha un fork actiu mantingut per Idiap que ha canviat de nom a coqui-tts.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install coqui-tts -&amp;gt; ara sí&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aquest fork suporta Python 3.10 fins a &amp;lt;3.13 (i les últimes versions ja arriben fins &amp;lt;3.14). Si el teu python3 --version et dona 3.13 o més nou, hauràs de crear el venv amb una versió compatible:&lt;br /&gt;
&lt;br /&gt;
Prova ràpida amb el model multi-parlant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però dóna un error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
ImportError: cannot import name 'isin_mps_friendly' from 'transformers.pytorch_utils' (/home/joan/veu-catala/venv/lib/python3.12/site-packages/transformers/pytorch_utils.py)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Trobat exactament: és un problema conegut i molt recent — transformers 5.x va eliminar la funció isin_mps_friendly que coqui-tts encara fa servir internament (a TTS/tts/layers/tortoise/autoregressive.py). Se't deu haver instal·lat automàticament una versió massa nova de transformers.&lt;br /&gt;
&lt;br /&gt;
Solució&lt;br /&gt;
&lt;br /&gt;
Fixa transformers a una versió anterior a la 5.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install &amp;quot;transformers==4.57.6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$ pip show transformers&lt;br /&gt;
Name: transformers&lt;br /&gt;
Version: 4.57.6&lt;br /&gt;
&lt;br /&gt;
$ python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara sí!&lt;br /&gt;
&lt;br /&gt;
Ja puc fer la prova de síntesi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;,&lt;br /&gt;
                 speaker=&amp;quot;ona&amp;quot;,&lt;br /&gt;
                 file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Els models que podem fer servir estan aquí:&lt;br /&gt;
*https://huggingface.co/spaces/projecte-aina/catalan_tts_arena&lt;br /&gt;
i són:&lt;br /&gt;
* Vits 2&lt;br /&gt;
* Matxa-TTS&lt;br /&gt;
* Matxa-TTS-multiaccent -&amp;gt; aquest és el Matxa v2 (multiaccent), i és el que acabaré fent servir finalment&lt;br /&gt;
* StableTTS&lt;br /&gt;
* StyleTTS 2&lt;br /&gt;
&lt;br /&gt;
Canvio el codi per al model vits:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FileNotFoundError: [!] No espeak backend found. Install espeak-ng or espeak to your system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
primer he d'instal·lar espeak-ng&lt;br /&gt;
&lt;br /&gt;
==Instal·lació espeak-ng==&lt;br /&gt;
&lt;br /&gt;
'''NOTA1''': aquest procés el faig dues vegades, perquè la primera vegada l'he fet fora del venv, i la segona vegada dins del venv, que seria el correcte.&lt;br /&gt;
&lt;br /&gt;
'''NOTA2''': el model de síntesi que faré servir finalment serà el Matxa V2, que funciona per grafemes, i això vol dir que aquest model no necessita el espeak-ng.&lt;br /&gt;
&lt;br /&gt;
Instal·lo espeak-ng a la màquina, fora d'un venv, perquè ho faré servir bastant.&lt;br /&gt;
&lt;br /&gt;
previ, les eines de make per compilar projectes C:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install autoconf automake libtool-bin pkg-config build-essential&lt;br /&gt;
&lt;br /&gt;
$ which aclocal&lt;br /&gt;
/usr/bin/aclocal&lt;br /&gt;
&lt;br /&gt;
$ aclocal --version&lt;br /&gt;
aclocal (GNU automake) 1.16.5&lt;br /&gt;
&lt;br /&gt;
sudo apt install libtool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh -&amp;gt; crec que dóna error...&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
(ara ja funciona)&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja ho tinc instal·lat.&lt;br /&gt;
&lt;br /&gt;
Exportem les variables d'entorn&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTA: Val la pena afegir aquestes tres línies al final del ~/.bashrc (o a un script activate_env.sh propi que sourregis cada cop abans de treballar-hi), perquè si no les hauràs de tornar a exportar cada vegada que obris terminal nova.&lt;br /&gt;
&lt;br /&gt;
4. Un parell de dependències més que demana Aina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTA''': he fet el fallo que ho hauria d'haver fet amb el venv del projecte que estava fent. Per tant, torno a activar el venv i faig la instal·lació del espeak-ng&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(torno a estar dins del venv, i torno a fer la instal·lació del espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ espeak-ng --voices=ca&lt;br /&gt;
Pty Language       Age/Gender VoiceName          File                 Other Languages&lt;br /&gt;
 5  ca              --/M      Catalan            roa/ca               &lt;br /&gt;
 5  ca-ba           --/M      Catalan_(Balearic) roa/ca-ba            &lt;br /&gt;
 5  ca-nw           --/M      Catalan_(North-western) roa/ca-nw            &lt;br /&gt;
 5  ca-va           --/M      Catalan_(Valencian) roa/ca-va &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Síntesi de veu amb vits==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja tinc la llibreria TTS instal·lada.&lt;br /&gt;
&lt;br /&gt;
(en aquest punt hauria de recordar de com funciona espeak-ng)&lt;br /&gt;
&lt;br /&gt;
Ja puc continuar en el punt on estava abans, de fer una prova de síntesi: (recordem que ara, per acabar de fer la síntesi, es farà servir espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja ho tinc, ho ha fet bastant bé, amb algun error. Puc provar els altres models, o altres speakers.&lt;br /&gt;
&lt;br /&gt;
Tinc aquest codi, que no funciona massa bé:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* quins són els models que puc fer servir en comptes de &amp;quot;tts_models/ca/custom/vits&amp;quot;?&lt;br /&gt;
* quins són els speakers que puc fer servir a més d'&amp;quot;ona&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
&lt;br /&gt;
models = TTS().list_models()&lt;br /&gt;
# Segons la versió, list_models() retorna una llista o un objecte ModelManager&lt;br /&gt;
noms = models if isinstance(models, list) else models.list_models()&lt;br /&gt;
print([m for m in noms if &amp;quot;/ca/&amp;quot; in m or &amp;quot;/cat/&amp;quot; in m])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Retorna:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
['tts_models/ca/custom/vits']&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
només em retorna un model:&lt;br /&gt;
&lt;br /&gt;
tts_models/ca/custom/vits: el que ja fas servir. És multi-speaker, entrenat amb dades de Festcat i Google Catalan.&lt;br /&gt;
&lt;br /&gt;
Vull mirar tots els speakers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;)&lt;br /&gt;
print(tts.speakers)&lt;br /&gt;
...', 'jan', 'mar', 'ona', 'pau', 'pep', 'pol', 'teo']&lt;br /&gt;
&lt;br /&gt;
for s in tts.speakers[:10]:&lt;br /&gt;
    tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova.&amp;quot;, speaker=s, file_path=f&amp;quot;/home/joan/projectes/t001_{s}.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'/home/joan/projectes/t001_00236e350cc84b94a6684f182acf96e68963d7fa1164d4fa56da20f46f210b2dd3ecf189e97fb3c94113a54c12dc20550508f5b7b9b37e1873898d58a308feb5.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00459.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00762.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00983a845f95493fb27125b114c635f3b40060efaee167d32d8a3dd040c877713446c7bd3e6944641227bdb4165ecb8d684ec2ef66c817e65e77c52cc50e62ed.wav'&lt;br /&gt;
'/home/joan/projectes/t001_01591.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02452.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02689.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02992.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02f7d61edf5063ca42953b1068539f1572985aa9448555cfd8d7667121eeedc72c912d95cf33abf61a1f9620f2a01be4251a53aa5440d15849003fb31210d830.wav'&lt;br /&gt;
'/home/joan/projectes/t001_03115.wav'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I canvio la línia i provo les diferents veus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;jan&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_jan.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;mar&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_mar.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_ona.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pau&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pau.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pep&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pep.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pol&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pol.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;teo&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_teo.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La qualitat no és molt bona:&lt;br /&gt;
&lt;br /&gt;
* La llibreria original TTS de Coqui ja no es manté, perquè l'empresa va tancar. El fork mantingut és coqui-tts (pip install coqui-tts), que funciona amb el mateix codi i sol donar menys problemes amb versions noves de Python i PyTorch.&lt;br /&gt;
* El Projecte AINA (BSC) ha publicat models catalans més recents a Hugging Face, com Matxa amb el vocoder alVoCat, que tenen diversos accents i solen sonar més naturals. No es carreguen amb TTS(...): tenen el seu propi codi d'inferència. -&amp;gt; '''aquest és el que farem servir'''&lt;br /&gt;
&lt;br /&gt;
Un codi més complet és el que em proposa Claude: (que és el model del projecte AINA (BSC))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install huggingface_hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''prova.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import glob&lt;br /&gt;
from huggingface_hub import snapshot_download&lt;br /&gt;
from TTS.utils.synthesizer import Synthesizer&lt;br /&gt;
&lt;br /&gt;
# Baixa el model (només cal la primera vegada, es queda en cau)&lt;br /&gt;
model_dir = snapshot_download(repo_id=&amp;quot;projecte-aina/tts-ca-coqui-vits-multispeaker&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Localitza els fitxers dins la carpeta &amp;quot;model&amp;quot;&lt;br /&gt;
config_path = f&amp;quot;{model_dir}/model/config.json&amp;quot;&lt;br /&gt;
speakers_path = glob.glob(f&amp;quot;{model_dir}/model/speakers*.pth&amp;quot;)[0]&lt;br /&gt;
checkpoint_candidates = [&lt;br /&gt;
    p for p in glob.glob(f&amp;quot;{model_dir}/model/*.pth&amp;quot;)&lt;br /&gt;
    if &amp;quot;speakers&amp;quot; not in p&lt;br /&gt;
]&lt;br /&gt;
model_path = checkpoint_candidates[0]&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Checkpoint:&amp;quot;, model_path)&lt;br /&gt;
print(&amp;quot;Config:&amp;quot;, config_path)&lt;br /&gt;
print(&amp;quot;Speakers:&amp;quot;, speakers_path)&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    model_path, config_path, speakers_path, None, None, None,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Mostra els parlants disponibles&lt;br /&gt;
print(&amp;quot;Parlants disponibles:&amp;quot;, synthesizer.tts_model.speaker_manager.speaker_names[:10])&lt;br /&gt;
&lt;br /&gt;
text = &amp;quot;Bon dia! Això és una prova de síntesi de veu en català.&amp;quot;&lt;br /&gt;
speaker = synthesizer.tts_model.speaker_manager.speaker_names[0]&lt;br /&gt;
&lt;br /&gt;
wav = synthesizer.tts(text, speaker_name=speaker)&lt;br /&gt;
synthesizer.save_wav(wav, &amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
print(&amp;quot;Fet! Genera't: prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dóna un error que el Claude el sap solucionar:&lt;br /&gt;
&lt;br /&gt;
Substitueix la crida al Synthesizer per:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    tts_checkpoint=model_path,&lt;br /&gt;
    tts_config_path=config_path,&lt;br /&gt;
    tts_speakers_file=speakers_path,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puc provar amb els parlants: 'mar' (833), 'ona'(834), 'pau'(835), 'pep'(836), 'pol'(837), 'teo'(838), 'uri'(839)&lt;br /&gt;
&lt;br /&gt;
hi ha 840 parlants.&lt;br /&gt;
&lt;br /&gt;
per tant els índex d'aquests són: 833, 834, 835, 836, 837, 838, 839&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables. &lt;br /&gt;
&lt;br /&gt;
aquestes veus (Festcat) es corresponen totes a parlants de català central. uri seria una mica unisex.&lt;br /&gt;
&lt;br /&gt;
Però n'hi ha moltes d'altres de veus (840 parlants)&lt;br /&gt;
&lt;br /&gt;
Sobre les 840 veus&lt;br /&gt;
&lt;br /&gt;
La fitxa del model parla de 255 parlants, però tu en veus 840. No ho he trobat documentat, però és habitual en models de Coqui que el fitxer speakers.pth inclogui tots els identificadors que apareixien a les dades de partida. Això no vol dir que tots tinguin prou material d'entrenament. A Common Voice molts voluntaris només han gravat unes poques frases, i és probable que el model hagi après molt poc d'aquests parlants.&lt;br /&gt;
&lt;br /&gt;
A la pràctica, això fa que la qualitat sigui molt desigual:&lt;br /&gt;
&lt;br /&gt;
* Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables.&lt;br /&gt;
* Els parlants de Common Voice amb moltes gravacions poden sonar bé, però amb el soroll i la variabilitat de gravacions casolanes.&lt;br /&gt;
* Els parlants amb molt poques gravacions sovint sonen genèrics, inestables o amb artefactes.&lt;br /&gt;
&lt;br /&gt;
editar el config.json&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls -la /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
joe /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i en el config.json apuntem la ruta real:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;speakers_file&amp;quot;: &amp;quot;/home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/speakers.pth&amp;quot;,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tornem a provar, i finalment ha funcionat!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 prova.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
7955f7d04b0a4ba49c653677f215265658afde6e89fdd2391eb714531056']&lt;br /&gt;
Fet! Genera't: prova.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara sí que se sent molt bé!&lt;br /&gt;
&lt;br /&gt;
Per tant, ja tinc un codi per fer síntesi de veu en català amb una veu molt bona&lt;br /&gt;
&lt;br /&gt;
Puc provar els altres speaker_names i els altres models&lt;br /&gt;
&lt;br /&gt;
he provat fins a 15 veus, i sembla ser que encara n'hi ha més. El model que he provat és: tts-ca-coqui-vits-multispeaker&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/projecte-aina/tts-ca-coqui-vits-multispeaker&lt;br /&gt;
* https://huggingface.co/spaces/softcatala/comparativa-tts-catala&lt;br /&gt;
&lt;br /&gt;
'''NOTA''': com que ja tenia aquesta part funcionant, ara vaig voler continuar amb el RVC per fer clonació. Però les millors proves de clonació les he aconseguit amb el model de síntesi del Matxa v2, que no necessita espeak-ng.&lt;br /&gt;
&lt;br /&gt;
===Les veus només són en català central===&lt;br /&gt;
Amb el script prova.py m'he generat les veus dels 840 speakers, i després de mirar els 30 primers, tots es corresponen de moment a català central. Espero trobar entre les veus accent de Lleida, de València i de Mallorca, però no els veig. Estic fent alguna cosa malament, espero trobar diversitat dialectal&lt;br /&gt;
&lt;br /&gt;
No estàs fent res malament. És una limitació del model: amb aquest model no trobaràs accents diferents del central, i és normal que no aparegui la diversitat que busques. Per què totes les veus sonen a català central?&lt;br /&gt;
&lt;br /&gt;
El model no llegeix el text directament. Primer el converteix en fonemes amb '''espeak-ng''' configurat amb l'idioma ca, i aquesta transcripció segueix la pronúncia del català central. Per tant, trets com la reducció vocàlica (a/e àtones → [ə]) o la -r final muda ja vénen decidits abans d'arribar a la veu.&lt;br /&gt;
&lt;br /&gt;
El parlant escollit només canvia el timbre, el to i una mica la prosòdia. Encara que el parlant original fos de València o de Mallorca, el model li fa pronunciar els fonemes centrals, i el resultat és una veu valenciana &amp;quot;llegint en central&amp;quot;. A més, a Common Voice els parlants de català central són clarament majoritaris, cosa que reforça aquest biaix.&lt;br /&gt;
&lt;br /&gt;
L'alternativa: un model multidialectal&lt;br /&gt;
&lt;br /&gt;
El BSC ha publicat Matxa, un model pensat precisament per això. Funciona juntament amb el vocoder alVoCat i genera veu en quatre dialectes: balear, central, nord-occidental i valencià. Per tant, està basat en grafemes i no necessita el espeak-ng.&lt;br /&gt;
&lt;br /&gt;
==Síntesi de veu amb Matxa v2==&lt;br /&gt;
&lt;br /&gt;
L'alternativa: un model multidialectal&lt;br /&gt;
&lt;br /&gt;
El BSC ha publicat Matxa, un model pensat precisament per això. Funciona juntament amb el vocoder alVoCat i genera veu en quatre dialectes: balear, central, nord-occidental i valencià. Té dues veus per dialecte: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Accent	Veus (speaker_id)	Cleaner&lt;br /&gt;
Balear	quim (0), olga (1)	catalan_balear_cleaners&lt;br /&gt;
Central	grau (2), elia (3)	catalan_cleaners&lt;br /&gt;
Nord-occidental (Lleida)	pere (4), emma (5)	catalan_occidental_cleaners&lt;br /&gt;
Valencià	lluc (6), gina (7)	catalan_valencia_cleaners&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Podem escoltar totes les veus aquí:&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/spaces/projecte-aina/matxa-alvocat-tts-ca&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Clonaci%C3%B3_de_veu&amp;diff=299241</id>
		<title>Clonació de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Clonaci%C3%B3_de_veu&amp;diff=299241"/>
		<updated>2026-10-10T23:08:45Z</updated>

		<summary type="html">&lt;p&gt;Joan: Es crea la pàgina amb «__TOC__  =Introducció= * https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322  Per fer clonació de veu, la manera que millor funciona és fer-ho a partir d'un...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Introducció=&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Per fer clonació de veu, la manera que millor funciona és fer-ho a partir d'una veu sintetitzada, i millor és clar si és de la variant dialectal correcta. De síntesi de veu tinc dues opcions:&lt;br /&gt;
-vits-multispeaker (necessita espeak-ng)&lt;br /&gt;
-Matxa v2 (multi-doalectal) (està basat en grafemes, no necessita espeak-ng).&lt;br /&gt;
Començaré per la primera opció, però finalment acabaré fent la segona opció.&lt;br /&gt;
&lt;br /&gt;
=RVC (Retrieval Voice Conversion)=&lt;br /&gt;
Reaprofito la carpeta ''veu-catala/'', que no deixa de ser un contenidor de fitxers. I en aquesta carpeta hi haurà dos entorns virtuals: un per al model VITS-multispeaker (encarregat del TTS i que genera un fitxer .wav). I un altre entorn que té per missió convertir el .wav a la veu de mostra que se li passa (i generarà un altre .wav).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv-rvc&lt;br /&gt;
source venv-rvc/bin/activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
git clone https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI.git rvc&lt;br /&gt;
cd rvc&lt;br /&gt;
&lt;br /&gt;
# pytorch per la teva GPU&lt;br /&gt;
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Dependències — vigila amb fairseq&lt;br /&gt;
&lt;br /&gt;
fairseq sovint necessita compilar-se i falla si el requirements.txt fixa una versió de torch/numpy incompatible amb la que ja tens instal·lada per Blackwell:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential # ja ho tenia&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat requirements/main.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si hi veus línies com torch==..., torchvision==..., torchaudio==..., numpy==... o fairseq==... amb una versió concreta fixada, comenta-les (posa un # al davant) perquè no et sobreescrigui el que ja tens funcionant.&lt;br /&gt;
&lt;br /&gt;
la línia dins de requirements/main.txt que fa referència a fairseq és:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fairseq @ git+https://github.com/fumiama/fairseq.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i no la comento (de fet, no comento res. En el main.txt no hi ha cap referència a torch).&lt;br /&gt;
&lt;br /&gt;
Instal·lem les dependències:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install -r requirements/main.txt&lt;br /&gt;
...&lt;br /&gt;
Building wheels for collected packages: fairseq, pyworld, antlr4-python3-runtime&lt;br /&gt;
  Building wheel for fairseq (pyproject.toml) ... -&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fairseq(-py) is a sequence modeling toolkit that allows researchers and developers to train custom models for translation, summarization, language modeling and other text generation tasks.&lt;br /&gt;
&lt;br /&gt;
5. Baixa els models base necessaris&lt;br /&gt;
&lt;br /&gt;
RVC necessita un extractor de característiques (HuBERT) i un detector de to (RMVPE):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p assets/hubert assets/rmvpe&lt;br /&gt;
curl -L -o assets/hubert/hubert_base.pt https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/hubert_base.pt&lt;br /&gt;
curl -L -o assets/rmvpe/rmvpe.pt https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/rmvpe.pt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(s'han descarregat bé)&lt;br /&gt;
&lt;br /&gt;
6. Prepara els àudios de la teva veu&lt;br /&gt;
&lt;br /&gt;
* Grava't 10-30 minuts parlant amb normalitat (millor en frases variades, no llegint sempre el mateix to).&lt;br /&gt;
* So net: sense música de fons, soroll, ni eco. Si cal, neteja-ho abans amb algun eina de reducció de soroll.&lt;br /&gt;
* Format .wav, cap problema si és un sol fitxer llarg o diversos — el propi RVC els trossejarà durant l'entrenament.&lt;br /&gt;
* Posa'ls tots en una carpeta, per exemple ~/veu-catala/rvc/dataset/joan/.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mkdir -p datasets/joan&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gravacions que tinc per entrenar la meva veu. Per exemple:&lt;br /&gt;
* /home/joan/projectes/NLP_catala/practica_audio_classification_using_pytorch/gravacio/gravacio2.wav&lt;br /&gt;
(són 21 minuts, 55MB)&lt;br /&gt;
&lt;br /&gt;
Faig la gravacio de la meva veu, una gravació de 30 min:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -D plughw:1,0 -f S16_LE -r 48000 -c 1 gravacio_joan_260923.wav&lt;br /&gt;
&lt;br /&gt;
$ file gravacio_joan_260923.wav &lt;br /&gt;
gravacio_joan_260923.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 48000 Hz&lt;br /&gt;
&lt;br /&gt;
$ aplay gravacio_joan_260923.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tenia molt interès de gravar la veu a 48000, doncs la interfície web d'entrenament veuré que hi ha el check 22000, 40000 i 48000.&lt;br /&gt;
&lt;br /&gt;
7. Engega la interfície web&lt;br /&gt;
&lt;br /&gt;
prompt:&lt;br /&gt;
Estic en el punt 7. Engega la interfície web (python infer-web.py). Però jo estic treballant per SSH, en consola. Hi ha possibilitat de poder entrenar la meva veu?&lt;br /&gt;
&lt;br /&gt;
La resposta seria que sí, que una web és un servidor Gradio local, i que s'ha de portar aquest port (fa servir el port 7860) fins al servidor. I la manera més neta de fer-ho és amb SSH port forwarding. De totes maneres, no hi ha problema per fer aquesta tasca d'entrenament RVC en el servidor directament. I a més a més, aprendrem al final d'aquesta entrada a fer l'entrenament RVC totalment des de la consola (hi ha el projecte RVC-NOGUI).&lt;br /&gt;
&lt;br /&gt;
Ja podem engegar la interfície web, però el script que he d'executar no es diu infer-web.py sinó '''web.py''':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python web.py&lt;br /&gt;
/home/joan/veu-catala/venv-rvc/lib/python3.12/site-packages/torch/jit/_script.py:1491: FutureWarning: `torch.jit.script` is deprecated. Please switch to `torch.compile` or `torch.export`.&lt;br /&gt;
  warnings.warn(&lt;br /&gt;
INFO:configs.config:Found GPU NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* http://localhost:7860&lt;br /&gt;
&lt;br /&gt;
'''NOTA''': fixem-nos que tindrem dos venv (que es diu venv, millor sempre utilitzar un nom més nemotècnic), i un altre que es diu venv-rvc). Un és per al model de síntesi vits-multispeaker, i l'altre és per al RVC. Això és el correcte, cada funcionalitat treballant amb el seu entorn i les seves dependències. Ara bé, lo bo del cas és que no cal activar/desactivar els entorns virtuals. N'hi ha prou en executar el codi a través de la ruta correcta de la instal·lació de python en el virtual environment. Per exemple: ''~/veu-catala/venv/bin/python prova.py'', ''~/veu-catala/venv-rvc/bin/python convertir.py''. Així cada entorn fa servir les seves pròpies dependències sense trepitjar-se. La carpeta ''veu_catala/'' és només un contenidor de fitxers, no té res a veure amb l'aïllament de dependències (això ho fan els venvs, no els directoris). &lt;br /&gt;
&lt;br /&gt;
Un cop tinc la interfície web, la manera de procedir és, a la pestanya Train:&lt;br /&gt;
&lt;br /&gt;
'''Pas 1''':&lt;br /&gt;
* donar un nom a l'experiment&lt;br /&gt;
* target sample rate: fixem-nos que aquest és el target, no el input. No és el sample rate de les meves gravacions. Puc deixar-ho a 40K, que suposo que vol dir 44100.&lt;br /&gt;
* faig servir la versió 2&lt;br /&gt;
&lt;br /&gt;
'''Pas 2a''':&lt;br /&gt;
* model has pitch guidance: no cal&lt;br /&gt;
* definir la carpeta on estan els samples de veu. Per ex: ''~/veu-catala/rvc/dataset/joan/''. Pot haver-hi un sol arxiu wav o vàrios, ell ja ho sap gestionar.&lt;br /&gt;
* speaker id: aquí m'apareixerà la llista de totes les veus de clonació que tinc (era així això?)&lt;br /&gt;
* clicar el botó ''Process data'' i veure com apareix la output information. Aquí representa que es fa el split/chunking de la gravació.&lt;br /&gt;
&lt;br /&gt;
'''Pas 2b''':&lt;br /&gt;
* GPU que faig servir: aquí en principi res, ja detecta bé la meva GPU&lt;br /&gt;
* faig servir per defecte rmvpe_gpu&lt;br /&gt;
* Botó feature_extraction, i esperar a què acabi tota l'extracció&lt;br /&gt;
&lt;br /&gt;
'''Pas 3''':&lt;br /&gt;
* entrar els paràmetres d'entrenament, i començar a entrenar, i veure com passen les èpoques fins al final.&lt;br /&gt;
&lt;br /&gt;
Aquesta és la pestanya '''Train''', però important és també la pestanya '''Vocals/Accompaniment &amp;amp; Reververation Removal''', perquè sap convertir la meva gravació (que potser jo em pensava que estava ben feta) en una bona qualitat abans de ser entrenada. Per exemple, si hi ha barrejada música i veu, sap extreure molt bé la veu. Després de l'entrenament anirem a la pestanya '''Model inference''', que serà quan podrem provar els resultats.&lt;br /&gt;
&lt;br /&gt;
(to be continued)&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299240</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299240"/>
		<updated>2026-10-10T22:20:39Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Síntesi de veu amb vits */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi/clonació. És a dir, jo el que volia fer aquí ja és la clonació. Aquesta tècnica s'emmarca amb la tècnica de clonació directa amb un model zero-shot multilingüe. Models com F5-TTS permeten clonar una veu a partir només d'uns segons d'àudio i generar directament en l'idioma objectiu. Els models que es poden fer servir són XTTS-v2 (Coqui), F5-TTS o GPT-SoVITS (estic provant F5-TTS), i el problema és que cap d'aquests models té el català com a idioma oficialment suportat de sèrie.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
=2a prova: model VITS=&lt;br /&gt;
&lt;br /&gt;
2a prova per a la síntesi d'una veu en català&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Abans de fer la clonació de veu primer he de fer síntesi de veu en català. S'ha de separar el problema en dos passos:&lt;br /&gt;
&lt;br /&gt;
- Genera la parla en català amb un model ja entrenat pel Projecte Aina (BSC), com Matxa-TTS o el VITS multi-parlant (projecte-aina/tts-ca-coqui-vits-multispeaker) — és la primera solució tecnològica publicada com a model lingüístic en obert que ofereix interpretació de text a veu en català central, nord-occidental, balear i valencià, disponible a Hugging Face. &lt;br /&gt;
- Converteix el timbre a la teva veu amb una eina de voice conversion com RVC (Retrieval-based Voice Conversion) o so-vits-svc. Entrenes un model petit amb ~10-30 minuts d’àudio net de la teva veu (parlant en qualsevol idioma, fins i tot) i li apliques la sortida del TTS català. El model de conversió només ha d’aprendre el ''color'' de la teva veu, no l'idioma, així que funciona molt bé i és ràpid d’entrenar amb 16GB. Aquest segon pas és la ''clonació de veu'', i la desenvolupo en una altra entrada. Ara ens centrarem només en la síntesi.&lt;br /&gt;
&lt;br /&gt;
Anem a fer dons la síntesi de veu en català.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/veu-catala &amp;amp;&amp;amp; cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate    # a Windows: venv\Scripts\activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Recordem que estem seguint:&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Primer instal·lem PyTorch. Aquí el Claude em fa un avís: La teva 5060 Ti és arquitectura Blackwell (sm_120). Si instal·les PyTorch “normal” (per exemple amb CUDA 12.1 o 12.4), et donarà l’error CUDA capability sm_120 is not compatible. Necessites la build amb CUDA 12.8 o superior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i comprovem que ho detecta bé:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També necessitem com a dependència:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install ffmpeg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja podem instal·lar TTS (llibreria coqui-tts, compatible amb els models VITS del BSC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install TTS &lt;br /&gt;
ERROR: Ignored the following versions that require a different python version: 0.0.10.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.10.3 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.11 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.12 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.14.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.9 Requires-Python ... &amp;gt;=3.7.0,&amp;lt;3.11; 0.7.1 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.8.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.9.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11&lt;br /&gt;
ERROR: Could not find a version that satisfies the requirement TTS (from versions: none)&lt;br /&gt;
ERROR: No matching distribution found for TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Confirmat: el paquet TTS original de Coqui està abandonat (l'empresa va tancar) i el darrer release no accepta Python ≥3.12, que és probablement el que tens instal·lat. Hi ha un fork actiu mantingut per Idiap que ha canviat de nom a coqui-tts.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install coqui-tts -&amp;gt; ara sí&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aquest fork suporta Python 3.10 fins a &amp;lt;3.13 (i les últimes versions ja arriben fins &amp;lt;3.14). Si el teu python3 --version et dona 3.13 o més nou, hauràs de crear el venv amb una versió compatible:&lt;br /&gt;
&lt;br /&gt;
Prova ràpida amb el model multi-parlant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però dóna un error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
ImportError: cannot import name 'isin_mps_friendly' from 'transformers.pytorch_utils' (/home/joan/veu-catala/venv/lib/python3.12/site-packages/transformers/pytorch_utils.py)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Trobat exactament: és un problema conegut i molt recent — transformers 5.x va eliminar la funció isin_mps_friendly que coqui-tts encara fa servir internament (a TTS/tts/layers/tortoise/autoregressive.py). Se't deu haver instal·lat automàticament una versió massa nova de transformers.&lt;br /&gt;
&lt;br /&gt;
Solució&lt;br /&gt;
&lt;br /&gt;
Fixa transformers a una versió anterior a la 5.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install &amp;quot;transformers==4.57.6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$ pip show transformers&lt;br /&gt;
Name: transformers&lt;br /&gt;
Version: 4.57.6&lt;br /&gt;
&lt;br /&gt;
$ python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara sí!&lt;br /&gt;
&lt;br /&gt;
Ja puc fer la prova de síntesi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;,&lt;br /&gt;
                 speaker=&amp;quot;ona&amp;quot;,&lt;br /&gt;
                 file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Els models que podem fer servir estan aquí:&lt;br /&gt;
*https://huggingface.co/spaces/projecte-aina/catalan_tts_arena&lt;br /&gt;
i són:&lt;br /&gt;
* Vits 2&lt;br /&gt;
* Matxa-TTS&lt;br /&gt;
* Matxa-TTS-multiaccent -&amp;gt; aquest és el Matxa v2 (multiaccent), i és el que acabaré fent servir finalment&lt;br /&gt;
* StableTTS&lt;br /&gt;
* StyleTTS 2&lt;br /&gt;
&lt;br /&gt;
Canvio el codi per al model vits:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FileNotFoundError: [!] No espeak backend found. Install espeak-ng or espeak to your system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
primer he d'instal·lar espeak-ng&lt;br /&gt;
&lt;br /&gt;
==Instal·lació espeak-ng==&lt;br /&gt;
&lt;br /&gt;
'''NOTA1''': aquest procés el faig dues vegades, perquè la primera vegada l'he fet fora del venv, i la segona vegada dins del venv, que seria el correcte.&lt;br /&gt;
&lt;br /&gt;
'''NOTA2''': el model de síntesi que faré servir finalment serà el Matxa V2, que funciona per grafemes, i això vol dir que aquest model no necessita el espeak-ng.&lt;br /&gt;
&lt;br /&gt;
Instal·lo espeak-ng a la màquina, fora d'un venv, perquè ho faré servir bastant.&lt;br /&gt;
&lt;br /&gt;
previ, les eines de make per compilar projectes C:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install autoconf automake libtool-bin pkg-config build-essential&lt;br /&gt;
&lt;br /&gt;
$ which aclocal&lt;br /&gt;
/usr/bin/aclocal&lt;br /&gt;
&lt;br /&gt;
$ aclocal --version&lt;br /&gt;
aclocal (GNU automake) 1.16.5&lt;br /&gt;
&lt;br /&gt;
sudo apt install libtool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh -&amp;gt; crec que dóna error...&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
(ara ja funciona)&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja ho tinc instal·lat.&lt;br /&gt;
&lt;br /&gt;
Exportem les variables d'entorn&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTA: Val la pena afegir aquestes tres línies al final del ~/.bashrc (o a un script activate_env.sh propi que sourregis cada cop abans de treballar-hi), perquè si no les hauràs de tornar a exportar cada vegada que obris terminal nova.&lt;br /&gt;
&lt;br /&gt;
4. Un parell de dependències més que demana Aina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTA''': he fet el fallo que ho hauria d'haver fet amb el venv del projecte que estava fent. Per tant, torno a activar el venv i faig la instal·lació del espeak-ng&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(torno a estar dins del venv, i torno a fer la instal·lació del espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ espeak-ng --voices=ca&lt;br /&gt;
Pty Language       Age/Gender VoiceName          File                 Other Languages&lt;br /&gt;
 5  ca              --/M      Catalan            roa/ca               &lt;br /&gt;
 5  ca-ba           --/M      Catalan_(Balearic) roa/ca-ba            &lt;br /&gt;
 5  ca-nw           --/M      Catalan_(North-western) roa/ca-nw            &lt;br /&gt;
 5  ca-va           --/M      Catalan_(Valencian) roa/ca-va &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Síntesi de veu amb vits==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja tinc la llibreria TTS instal·lada.&lt;br /&gt;
&lt;br /&gt;
(en aquest punt hauria de recordar de com funciona espeak-ng)&lt;br /&gt;
&lt;br /&gt;
Ja puc continuar en el punt on estava abans, de fer una prova de síntesi: (recordem que ara, per acabar de fer la síntesi, es farà servir espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja ho tinc, ho ha fet bastant bé, amb algun error. Puc provar els altres models, o altres speakers.&lt;br /&gt;
&lt;br /&gt;
Tinc aquest codi, que no funciona massa bé:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* quins són els models que puc fer servir en comptes de &amp;quot;tts_models/ca/custom/vits&amp;quot;?&lt;br /&gt;
* quins són els speakers que puc fer servir a més d'&amp;quot;ona&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
&lt;br /&gt;
models = TTS().list_models()&lt;br /&gt;
# Segons la versió, list_models() retorna una llista o un objecte ModelManager&lt;br /&gt;
noms = models if isinstance(models, list) else models.list_models()&lt;br /&gt;
print([m for m in noms if &amp;quot;/ca/&amp;quot; in m or &amp;quot;/cat/&amp;quot; in m])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Retorna:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
['tts_models/ca/custom/vits']&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
només em retorna un model:&lt;br /&gt;
&lt;br /&gt;
tts_models/ca/custom/vits: el que ja fas servir. És multi-speaker, entrenat amb dades de Festcat i Google Catalan.&lt;br /&gt;
&lt;br /&gt;
Vull mirar tots els speakers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;)&lt;br /&gt;
print(tts.speakers)&lt;br /&gt;
...', 'jan', 'mar', 'ona', 'pau', 'pep', 'pol', 'teo']&lt;br /&gt;
&lt;br /&gt;
for s in tts.speakers[:10]:&lt;br /&gt;
    tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova.&amp;quot;, speaker=s, file_path=f&amp;quot;/home/joan/projectes/t001_{s}.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'/home/joan/projectes/t001_00236e350cc84b94a6684f182acf96e68963d7fa1164d4fa56da20f46f210b2dd3ecf189e97fb3c94113a54c12dc20550508f5b7b9b37e1873898d58a308feb5.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00459.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00762.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00983a845f95493fb27125b114c635f3b40060efaee167d32d8a3dd040c877713446c7bd3e6944641227bdb4165ecb8d684ec2ef66c817e65e77c52cc50e62ed.wav'&lt;br /&gt;
'/home/joan/projectes/t001_01591.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02452.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02689.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02992.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02f7d61edf5063ca42953b1068539f1572985aa9448555cfd8d7667121eeedc72c912d95cf33abf61a1f9620f2a01be4251a53aa5440d15849003fb31210d830.wav'&lt;br /&gt;
'/home/joan/projectes/t001_03115.wav'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I canvio la línia i provo les diferents veus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;jan&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_jan.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;mar&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_mar.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_ona.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pau&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pau.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pep&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pep.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pol&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pol.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;teo&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_teo.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La qualitat no és molt bona:&lt;br /&gt;
&lt;br /&gt;
* La llibreria original TTS de Coqui ja no es manté, perquè l'empresa va tancar. El fork mantingut és coqui-tts (pip install coqui-tts), que funciona amb el mateix codi i sol donar menys problemes amb versions noves de Python i PyTorch.&lt;br /&gt;
* El Projecte AINA (BSC) ha publicat models catalans més recents a Hugging Face, com Matxa amb el vocoder alVoCat, que tenen diversos accents i solen sonar més naturals. No es carreguen amb TTS(...): tenen el seu propi codi d'inferència. -&amp;gt; '''aquest és el que farem servir'''&lt;br /&gt;
&lt;br /&gt;
Un codi més complet és el que em proposa Claude: (que és el model del projecte AINA (BSC))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install huggingface_hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''prova.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import glob&lt;br /&gt;
from huggingface_hub import snapshot_download&lt;br /&gt;
from TTS.utils.synthesizer import Synthesizer&lt;br /&gt;
&lt;br /&gt;
# Baixa el model (només cal la primera vegada, es queda en cau)&lt;br /&gt;
model_dir = snapshot_download(repo_id=&amp;quot;projecte-aina/tts-ca-coqui-vits-multispeaker&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Localitza els fitxers dins la carpeta &amp;quot;model&amp;quot;&lt;br /&gt;
config_path = f&amp;quot;{model_dir}/model/config.json&amp;quot;&lt;br /&gt;
speakers_path = glob.glob(f&amp;quot;{model_dir}/model/speakers*.pth&amp;quot;)[0]&lt;br /&gt;
checkpoint_candidates = [&lt;br /&gt;
    p for p in glob.glob(f&amp;quot;{model_dir}/model/*.pth&amp;quot;)&lt;br /&gt;
    if &amp;quot;speakers&amp;quot; not in p&lt;br /&gt;
]&lt;br /&gt;
model_path = checkpoint_candidates[0]&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Checkpoint:&amp;quot;, model_path)&lt;br /&gt;
print(&amp;quot;Config:&amp;quot;, config_path)&lt;br /&gt;
print(&amp;quot;Speakers:&amp;quot;, speakers_path)&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    model_path, config_path, speakers_path, None, None, None,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Mostra els parlants disponibles&lt;br /&gt;
print(&amp;quot;Parlants disponibles:&amp;quot;, synthesizer.tts_model.speaker_manager.speaker_names[:10])&lt;br /&gt;
&lt;br /&gt;
text = &amp;quot;Bon dia! Això és una prova de síntesi de veu en català.&amp;quot;&lt;br /&gt;
speaker = synthesizer.tts_model.speaker_manager.speaker_names[0]&lt;br /&gt;
&lt;br /&gt;
wav = synthesizer.tts(text, speaker_name=speaker)&lt;br /&gt;
synthesizer.save_wav(wav, &amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
print(&amp;quot;Fet! Genera't: prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dóna un error que el Claude el sap solucionar:&lt;br /&gt;
&lt;br /&gt;
Substitueix la crida al Synthesizer per:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    tts_checkpoint=model_path,&lt;br /&gt;
    tts_config_path=config_path,&lt;br /&gt;
    tts_speakers_file=speakers_path,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puc provar amb els parlants: 'mar' (833), 'ona'(834), 'pau'(835), 'pep'(836), 'pol'(837), 'teo'(838), 'uri'(839)&lt;br /&gt;
&lt;br /&gt;
hi ha 840 parlants.&lt;br /&gt;
&lt;br /&gt;
per tant els índex d'aquests són: 833, 834, 835, 836, 837, 838, 839&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables. &lt;br /&gt;
&lt;br /&gt;
aquestes veus (Festcat) es corresponen totes a parlants de català central. uri seria una mica unisex.&lt;br /&gt;
&lt;br /&gt;
Però n'hi ha moltes d'altres de veus (840 parlants)&lt;br /&gt;
&lt;br /&gt;
Sobre les 840 veus&lt;br /&gt;
&lt;br /&gt;
La fitxa del model parla de 255 parlants, però tu en veus 840. No ho he trobat documentat, però és habitual en models de Coqui que el fitxer speakers.pth inclogui tots els identificadors que apareixien a les dades de partida. Això no vol dir que tots tinguin prou material d'entrenament. A Common Voice molts voluntaris només han gravat unes poques frases, i és probable que el model hagi après molt poc d'aquests parlants.&lt;br /&gt;
&lt;br /&gt;
A la pràctica, això fa que la qualitat sigui molt desigual:&lt;br /&gt;
&lt;br /&gt;
* Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables.&lt;br /&gt;
* Els parlants de Common Voice amb moltes gravacions poden sonar bé, però amb el soroll i la variabilitat de gravacions casolanes.&lt;br /&gt;
* Els parlants amb molt poques gravacions sovint sonen genèrics, inestables o amb artefactes.&lt;br /&gt;
&lt;br /&gt;
editar el config.json&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls -la /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
joe /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i en el config.json apuntem la ruta real:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;speakers_file&amp;quot;: &amp;quot;/home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/speakers.pth&amp;quot;,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tornem a provar, i finalment ha funcionat!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 prova.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
7955f7d04b0a4ba49c653677f215265658afde6e89fdd2391eb714531056']&lt;br /&gt;
Fet! Genera't: prova.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara sí que se sent molt bé!&lt;br /&gt;
&lt;br /&gt;
Per tant, ja tinc un codi per fer síntesi de veu en català amb una veu molt bona&lt;br /&gt;
&lt;br /&gt;
Puc provar els altres speaker_names i els altres models&lt;br /&gt;
&lt;br /&gt;
he provat fins a 15 veus, i sembla ser que encara n'hi ha més. El model que he provat és: tts-ca-coqui-vits-multispeaker&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/projecte-aina/tts-ca-coqui-vits-multispeaker&lt;br /&gt;
* https://huggingface.co/spaces/softcatala/comparativa-tts-catala&lt;br /&gt;
&lt;br /&gt;
'''NOTA''': com que ja tenia aquesta part funcionant, ara vaig voler continuar amb el RVC per fer clonació. Però les millors proves de clonació les he aconseguit amb el model de síntesi del Matxa v2, que no necessita espeak-ng.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299239</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299239"/>
		<updated>2026-10-10T22:01:01Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* 2a prova: model VITS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi/clonació. És a dir, jo el que volia fer aquí ja és la clonació. Aquesta tècnica s'emmarca amb la tècnica de clonació directa amb un model zero-shot multilingüe. Models com F5-TTS permeten clonar una veu a partir només d'uns segons d'àudio i generar directament en l'idioma objectiu. Els models que es poden fer servir són XTTS-v2 (Coqui), F5-TTS o GPT-SoVITS (estic provant F5-TTS), i el problema és que cap d'aquests models té el català com a idioma oficialment suportat de sèrie.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
=2a prova: model VITS=&lt;br /&gt;
&lt;br /&gt;
2a prova per a la síntesi d'una veu en català&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Abans de fer la clonació de veu primer he de fer síntesi de veu en català. S'ha de separar el problema en dos passos:&lt;br /&gt;
&lt;br /&gt;
- Genera la parla en català amb un model ja entrenat pel Projecte Aina (BSC), com Matxa-TTS o el VITS multi-parlant (projecte-aina/tts-ca-coqui-vits-multispeaker) — és la primera solució tecnològica publicada com a model lingüístic en obert que ofereix interpretació de text a veu en català central, nord-occidental, balear i valencià, disponible a Hugging Face. &lt;br /&gt;
- Converteix el timbre a la teva veu amb una eina de voice conversion com RVC (Retrieval-based Voice Conversion) o so-vits-svc. Entrenes un model petit amb ~10-30 minuts d’àudio net de la teva veu (parlant en qualsevol idioma, fins i tot) i li apliques la sortida del TTS català. El model de conversió només ha d’aprendre el ''color'' de la teva veu, no l'idioma, així que funciona molt bé i és ràpid d’entrenar amb 16GB. Aquest segon pas és la ''clonació de veu'', i la desenvolupo en una altra entrada. Ara ens centrarem només en la síntesi.&lt;br /&gt;
&lt;br /&gt;
Anem a fer dons la síntesi de veu en català.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/veu-catala &amp;amp;&amp;amp; cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate    # a Windows: venv\Scripts\activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Recordem que estem seguint:&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Primer instal·lem PyTorch. Aquí el Claude em fa un avís: La teva 5060 Ti és arquitectura Blackwell (sm_120). Si instal·les PyTorch “normal” (per exemple amb CUDA 12.1 o 12.4), et donarà l’error CUDA capability sm_120 is not compatible. Necessites la build amb CUDA 12.8 o superior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i comprovem que ho detecta bé:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També necessitem com a dependència:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install ffmpeg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja podem instal·lar TTS (llibreria coqui-tts, compatible amb els models VITS del BSC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install TTS &lt;br /&gt;
ERROR: Ignored the following versions that require a different python version: 0.0.10.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.10.3 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.11 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.12 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.14.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.9 Requires-Python ... &amp;gt;=3.7.0,&amp;lt;3.11; 0.7.1 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.8.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.9.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11&lt;br /&gt;
ERROR: Could not find a version that satisfies the requirement TTS (from versions: none)&lt;br /&gt;
ERROR: No matching distribution found for TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Confirmat: el paquet TTS original de Coqui està abandonat (l'empresa va tancar) i el darrer release no accepta Python ≥3.12, que és probablement el que tens instal·lat. Hi ha un fork actiu mantingut per Idiap que ha canviat de nom a coqui-tts.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install coqui-tts -&amp;gt; ara sí&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aquest fork suporta Python 3.10 fins a &amp;lt;3.13 (i les últimes versions ja arriben fins &amp;lt;3.14). Si el teu python3 --version et dona 3.13 o més nou, hauràs de crear el venv amb una versió compatible:&lt;br /&gt;
&lt;br /&gt;
Prova ràpida amb el model multi-parlant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però dóna un error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
ImportError: cannot import name 'isin_mps_friendly' from 'transformers.pytorch_utils' (/home/joan/veu-catala/venv/lib/python3.12/site-packages/transformers/pytorch_utils.py)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Trobat exactament: és un problema conegut i molt recent — transformers 5.x va eliminar la funció isin_mps_friendly que coqui-tts encara fa servir internament (a TTS/tts/layers/tortoise/autoregressive.py). Se't deu haver instal·lat automàticament una versió massa nova de transformers.&lt;br /&gt;
&lt;br /&gt;
Solució&lt;br /&gt;
&lt;br /&gt;
Fixa transformers a una versió anterior a la 5.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install &amp;quot;transformers==4.57.6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$ pip show transformers&lt;br /&gt;
Name: transformers&lt;br /&gt;
Version: 4.57.6&lt;br /&gt;
&lt;br /&gt;
$ python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara sí!&lt;br /&gt;
&lt;br /&gt;
Ja puc fer la prova de síntesi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;,&lt;br /&gt;
                 speaker=&amp;quot;ona&amp;quot;,&lt;br /&gt;
                 file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Els models que podem fer servir estan aquí:&lt;br /&gt;
*https://huggingface.co/spaces/projecte-aina/catalan_tts_arena&lt;br /&gt;
i són:&lt;br /&gt;
* Vits 2&lt;br /&gt;
* Matxa-TTS&lt;br /&gt;
* Matxa-TTS-multiaccent -&amp;gt; aquest és el Matxa v2 (multiaccent), i és el que acabaré fent servir finalment&lt;br /&gt;
* StableTTS&lt;br /&gt;
* StyleTTS 2&lt;br /&gt;
&lt;br /&gt;
Canvio el codi per al model vits:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FileNotFoundError: [!] No espeak backend found. Install espeak-ng or espeak to your system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
primer he d'instal·lar espeak-ng&lt;br /&gt;
&lt;br /&gt;
==Instal·lació espeak-ng==&lt;br /&gt;
&lt;br /&gt;
'''NOTA1''': aquest procés el faig dues vegades, perquè la primera vegada l'he fet fora del venv, i la segona vegada dins del venv, que seria el correcte.&lt;br /&gt;
&lt;br /&gt;
'''NOTA2''': el model de síntesi que faré servir finalment serà el Matxa V2, que funciona per grafemes, i això vol dir que aquest model no necessita el espeak-ng.&lt;br /&gt;
&lt;br /&gt;
Instal·lo espeak-ng a la màquina, fora d'un venv, perquè ho faré servir bastant.&lt;br /&gt;
&lt;br /&gt;
previ, les eines de make per compilar projectes C:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install autoconf automake libtool-bin pkg-config build-essential&lt;br /&gt;
&lt;br /&gt;
$ which aclocal&lt;br /&gt;
/usr/bin/aclocal&lt;br /&gt;
&lt;br /&gt;
$ aclocal --version&lt;br /&gt;
aclocal (GNU automake) 1.16.5&lt;br /&gt;
&lt;br /&gt;
sudo apt install libtool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh -&amp;gt; crec que dóna error...&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
(ara ja funciona)&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja ho tinc instal·lat.&lt;br /&gt;
&lt;br /&gt;
Exportem les variables d'entorn&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTA: Val la pena afegir aquestes tres línies al final del ~/.bashrc (o a un script activate_env.sh propi que sourregis cada cop abans de treballar-hi), perquè si no les hauràs de tornar a exportar cada vegada que obris terminal nova.&lt;br /&gt;
&lt;br /&gt;
4. Un parell de dependències més que demana Aina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTA''': he fet el fallo que ho hauria d'haver fet amb el venv del projecte que estava fent. Per tant, torno a activar el venv i faig la instal·lació del espeak-ng&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(torno a estar dins del venv, i torno a fer la instal·lació del espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ espeak-ng --voices=ca&lt;br /&gt;
Pty Language       Age/Gender VoiceName          File                 Other Languages&lt;br /&gt;
 5  ca              --/M      Catalan            roa/ca               &lt;br /&gt;
 5  ca-ba           --/M      Catalan_(Balearic) roa/ca-ba            &lt;br /&gt;
 5  ca-nw           --/M      Catalan_(North-western) roa/ca-nw            &lt;br /&gt;
 5  ca-va           --/M      Catalan_(Valencian) roa/ca-va &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Síntesi de veu amb vits==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja tinc la llibreria TTS instal·lada.&lt;br /&gt;
&lt;br /&gt;
(en aquest punt hauria de recordar de com funciona espeak-ng)&lt;br /&gt;
&lt;br /&gt;
Ja puc continuar en el punt on estava abans, de fer una prova de síntesi: (recordem que ara, per acabar de fer la síntesi, es farà servir espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja ho tinc, ho ha fet bastant bé, amb algun error. Puc provar els altres models, o altres speakers.&lt;br /&gt;
&lt;br /&gt;
Tinc aquest codi, que no funciona massa bé:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* quins són els models que puc fer servir en comptes de &amp;quot;tts_models/ca/custom/vits&amp;quot;?&lt;br /&gt;
* quins són els speakers que puc fer servir a més d'&amp;quot;ona&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
&lt;br /&gt;
models = TTS().list_models()&lt;br /&gt;
# Segons la versió, list_models() retorna una llista o un objecte ModelManager&lt;br /&gt;
noms = models if isinstance(models, list) else models.list_models()&lt;br /&gt;
print([m for m in noms if &amp;quot;/ca/&amp;quot; in m or &amp;quot;/cat/&amp;quot; in m])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Retorna:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
['tts_models/ca/custom/vits']&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
només em retorna un model:&lt;br /&gt;
&lt;br /&gt;
tts_models/ca/custom/vits: el que ja fas servir. És multi-speaker, entrenat amb dades de Festcat i Google Catalan.&lt;br /&gt;
&lt;br /&gt;
Vull mirar tots els speakers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;)&lt;br /&gt;
print(tts.speakers)&lt;br /&gt;
...', 'jan', 'mar', 'ona', 'pau', 'pep', 'pol', 'teo']&lt;br /&gt;
&lt;br /&gt;
for s in tts.speakers[:10]:&lt;br /&gt;
    tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova.&amp;quot;, speaker=s, file_path=f&amp;quot;/home/joan/projectes/t001_{s}.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'/home/joan/projectes/t001_00236e350cc84b94a6684f182acf96e68963d7fa1164d4fa56da20f46f210b2dd3ecf189e97fb3c94113a54c12dc20550508f5b7b9b37e1873898d58a308feb5.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00459.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00762.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00983a845f95493fb27125b114c635f3b40060efaee167d32d8a3dd040c877713446c7bd3e6944641227bdb4165ecb8d684ec2ef66c817e65e77c52cc50e62ed.wav'&lt;br /&gt;
'/home/joan/projectes/t001_01591.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02452.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02689.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02992.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02f7d61edf5063ca42953b1068539f1572985aa9448555cfd8d7667121eeedc72c912d95cf33abf61a1f9620f2a01be4251a53aa5440d15849003fb31210d830.wav'&lt;br /&gt;
'/home/joan/projectes/t001_03115.wav'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I canvio la línia i provo les diferents veus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;jan&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_jan.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;mar&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_mar.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_ona.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pau&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pau.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pep&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pep.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pol&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pol.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;teo&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_teo.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La qualitat no és molt bona:&lt;br /&gt;
&lt;br /&gt;
* La llibreria original TTS de Coqui ja no es manté, perquè l'empresa va tancar. El fork mantingut és coqui-tts (pip install coqui-tts), que funciona amb el mateix codi i sol donar menys problemes amb versions noves de Python i PyTorch.&lt;br /&gt;
* El Projecte AINA (BSC) ha publicat models catalans més recents a Hugging Face, com Matxa amb el vocoder alVoCat, que tenen diversos accents i solen sonar més naturals. No es carreguen amb TTS(...): tenen el seu propi codi d'inferència. -&amp;gt; '''aquest és el que farem servir'''&lt;br /&gt;
&lt;br /&gt;
Un codi més complet és el que em proposa Claude: (que és el model del projecte AINA (BSC))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install huggingface_hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''prova.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import glob&lt;br /&gt;
from huggingface_hub import snapshot_download&lt;br /&gt;
from TTS.utils.synthesizer import Synthesizer&lt;br /&gt;
&lt;br /&gt;
# Baixa el model (només cal la primera vegada, es queda en cau)&lt;br /&gt;
model_dir = snapshot_download(repo_id=&amp;quot;projecte-aina/tts-ca-coqui-vits-multispeaker&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Localitza els fitxers dins la carpeta &amp;quot;model&amp;quot;&lt;br /&gt;
config_path = f&amp;quot;{model_dir}/model/config.json&amp;quot;&lt;br /&gt;
speakers_path = glob.glob(f&amp;quot;{model_dir}/model/speakers*.pth&amp;quot;)[0]&lt;br /&gt;
checkpoint_candidates = [&lt;br /&gt;
    p for p in glob.glob(f&amp;quot;{model_dir}/model/*.pth&amp;quot;)&lt;br /&gt;
    if &amp;quot;speakers&amp;quot; not in p&lt;br /&gt;
]&lt;br /&gt;
model_path = checkpoint_candidates[0]&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Checkpoint:&amp;quot;, model_path)&lt;br /&gt;
print(&amp;quot;Config:&amp;quot;, config_path)&lt;br /&gt;
print(&amp;quot;Speakers:&amp;quot;, speakers_path)&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    model_path, config_path, speakers_path, None, None, None,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Mostra els parlants disponibles&lt;br /&gt;
print(&amp;quot;Parlants disponibles:&amp;quot;, synthesizer.tts_model.speaker_manager.speaker_names[:10])&lt;br /&gt;
&lt;br /&gt;
text = &amp;quot;Bon dia! Això és una prova de síntesi de veu en català.&amp;quot;&lt;br /&gt;
speaker = synthesizer.tts_model.speaker_manager.speaker_names[0]&lt;br /&gt;
&lt;br /&gt;
wav = synthesizer.tts(text, speaker_name=speaker)&lt;br /&gt;
synthesizer.save_wav(wav, &amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
print(&amp;quot;Fet! Genera't: prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dóna un error que el Claude el sap solucionar:&lt;br /&gt;
&lt;br /&gt;
Substitueix la crida al Synthesizer per:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    tts_checkpoint=model_path,&lt;br /&gt;
    tts_config_path=config_path,&lt;br /&gt;
    tts_speakers_file=speakers_path,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puc provar amb els parlants: 'mar' (833), 'ona'(834), 'pau'(835), 'pep'(836), 'pol'(837), 'teo'(838), 'uri'(839)&lt;br /&gt;
&lt;br /&gt;
hi ha 840 parlants.&lt;br /&gt;
&lt;br /&gt;
per tant els índex d'aquests són: 833, 834, 835, 836, 837, 838, 839&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables. &lt;br /&gt;
&lt;br /&gt;
aquestes veus (Festcat) es corresponen totes a parlants de català central. uri seria una mica unisex.&lt;br /&gt;
&lt;br /&gt;
Però n'hi ha moltes d'altres de veus (840 parlants)&lt;br /&gt;
&lt;br /&gt;
Sobre les 840 veus&lt;br /&gt;
&lt;br /&gt;
La fitxa del model parla de 255 parlants, però tu en veus 840. No ho he trobat documentat, però és habitual en models de Coqui que el fitxer speakers.pth inclogui tots els identificadors que apareixien a les dades de partida. Això no vol dir que tots tinguin prou material d'entrenament. A Common Voice molts voluntaris només han gravat unes poques frases, i és probable que el model hagi après molt poc d'aquests parlants.&lt;br /&gt;
&lt;br /&gt;
A la pràctica, això fa que la qualitat sigui molt desigual:&lt;br /&gt;
&lt;br /&gt;
* Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables.&lt;br /&gt;
* Els parlants de Common Voice amb moltes gravacions poden sonar bé, però amb el soroll i la variabilitat de gravacions casolanes.&lt;br /&gt;
* Els parlants amb molt poques gravacions sovint sonen genèrics, inestables o amb artefactes.&lt;br /&gt;
&lt;br /&gt;
editar el config.json&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls -la /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
joe /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i en el config.json apuntem la ruta real:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;speakers_file&amp;quot;: &amp;quot;/home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/speakers.pth&amp;quot;,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tornem a provar, i finalment ha funcionat!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 prova.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
7955f7d04b0a4ba49c653677f215265658afde6e89fdd2391eb714531056']&lt;br /&gt;
Fet! Genera't: prova.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara sí que se sent molt bé!&lt;br /&gt;
&lt;br /&gt;
Per tant, ja tinc un codi per fer síntesi de veu en català amb una veu molt bona&lt;br /&gt;
&lt;br /&gt;
Puc provar els altres speaker_names i els altres models&lt;br /&gt;
&lt;br /&gt;
he provat fins a 15 veus, i sembla ser que encara n'hi ha més. El model que he provat és: tts-ca-coqui-vits-multispeaker&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/projecte-aina/tts-ca-coqui-vits-multispeaker&lt;br /&gt;
* https://huggingface.co/spaces/softcatala/comparativa-tts-catala&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299238</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299238"/>
		<updated>2026-10-10T21:56:20Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* 2a prova: model VITS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi/clonació. És a dir, jo el que volia fer aquí ja és la clonació. Aquesta tècnica s'emmarca amb la tècnica de clonació directa amb un model zero-shot multilingüe. Models com F5-TTS permeten clonar una veu a partir només d'uns segons d'àudio i generar directament en l'idioma objectiu. Els models que es poden fer servir són XTTS-v2 (Coqui), F5-TTS o GPT-SoVITS (estic provant F5-TTS), i el problema és que cap d'aquests models té el català com a idioma oficialment suportat de sèrie.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
=2a prova: model VITS=&lt;br /&gt;
&lt;br /&gt;
2a prova per a la síntesi d'una veu en català&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Abans de fer la clonació de veu primer he de fer síntesi de veu en català. S'ha de separar el problema en dos passos:&lt;br /&gt;
&lt;br /&gt;
- Genera la parla en català amb un model ja entrenat pel Projecte Aina (BSC), com Matxa-TTS o el VITS multi-parlant (projecte-aina/tts-ca-coqui-vits-multispeaker) — és la primera solució tecnològica publicada com a model lingüístic en obert que ofereix interpretació de text a veu en català central, nord-occidental, balear i valencià, disponible a Hugging Face. &lt;br /&gt;
- Converteix el timbre a la teva veu amb una eina de voice conversion com RVC (Retrieval-based Voice Conversion) o so-vits-svc. Entrenes un model petit amb ~10-30 minuts d’àudio net de la teva veu (parlant en qualsevol idioma, fins i tot) i li apliques la sortida del TTS català. El model de conversió només ha d’aprendre el ''color'' de la teva veu, no l'idioma, així que funciona molt bé i és ràpid d’entrenar amb 16GB. Aquest segon pas és la ''clonació de veu'', i la desenvolupo en una altra entrada. Ara ens centrarem només en la síntesi.&lt;br /&gt;
&lt;br /&gt;
Anem a fer dons la síntesi de veu en català.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/veu-catala &amp;amp;&amp;amp; cd ~/veu-catala&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate    # a Windows: venv\Scripts\activate&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Recordem que estem seguint:&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
Primer instal·lem PyTorch. Aquí el Claude em fa un avís: La teva 5060 Ti és arquitectura Blackwell (sm_120). Si instal·les PyTorch “normal” (per exemple amb CUDA 12.1 o 12.4), et donarà l’error CUDA capability sm_120 is not compatible. Necessites la build amb CUDA 12.8 o superior:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i comprovem que ho detecta bé:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També necessitem com a dependència:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install ffmpeg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ara ja podem instal·lar TTS (llibreria coqui-tts, compatible amb els models VITS del BSC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install TTS &lt;br /&gt;
ERROR: Ignored the following versions that require a different python version: 0.0.10.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.10.3 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.11 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.12 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.14.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.9 Requires-Python ... &amp;gt;=3.7.0,&amp;lt;3.11; 0.7.1 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.8.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.9.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11&lt;br /&gt;
ERROR: Could not find a version that satisfies the requirement TTS (from versions: none)&lt;br /&gt;
ERROR: No matching distribution found for TTS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Confirmat: el paquet TTS original de Coqui està abandonat (l'empresa va tancar) i el darrer release no accepta Python ≥3.12, que és probablement el que tens instal·lat. Hi ha un fork actiu mantingut per Idiap que ha canviat de nom a coqui-tts.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install coqui-tts -&amp;gt; ara sí&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Aquest fork suporta Python 3.10 fins a &amp;lt;3.13 (i les últimes versions ja arriben fins &amp;lt;3.14). Si el teu python3 --version et dona 3.13 o més nou, hauràs de crear el venv amb una versió compatible:&lt;br /&gt;
&lt;br /&gt;
Prova ràpida amb el model multi-parlant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Però dóna un error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
ImportError: cannot import name 'isin_mps_friendly' from 'transformers.pytorch_utils' (/home/joan/veu-catala/venv/lib/python3.12/site-packages/transformers/pytorch_utils.py)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Trobat exactament: és un problema conegut i molt recent — transformers 5.x va eliminar la funció isin_mps_friendly que coqui-tts encara fa servir internament (a TTS/tts/layers/tortoise/autoregressive.py). Se't deu haver instal·lat automàticament una versió massa nova de transformers.&lt;br /&gt;
&lt;br /&gt;
Solució&lt;br /&gt;
&lt;br /&gt;
Fixa transformers a una versió anterior a la 5.0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install &amp;quot;transformers==4.57.6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$ pip show transformers&lt;br /&gt;
Name: transformers&lt;br /&gt;
Version: 4.57.6&lt;br /&gt;
&lt;br /&gt;
$ python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara sí!&lt;br /&gt;
&lt;br /&gt;
Ja puc fer la prova de síntesi:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;,&lt;br /&gt;
                 speaker=&amp;quot;ona&amp;quot;,&lt;br /&gt;
                 file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Els models que podem fer servir estan aquí:&lt;br /&gt;
*https://huggingface.co/spaces/projecte-aina/catalan_tts_arena&lt;br /&gt;
i són:&lt;br /&gt;
* Vits 2&lt;br /&gt;
* Matxa-TTS&lt;br /&gt;
* Matxa-TTS-multiaccent -&amp;gt; aquest és el Matxa v2 (multiaccent), i és el que acabaré fent servir finalment&lt;br /&gt;
* StableTTS&lt;br /&gt;
* StyleTTS 2&lt;br /&gt;
&lt;br /&gt;
Canvio el codi per al model vits:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FileNotFoundError: [!] No espeak backend found. Install espeak-ng or espeak to your system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
primer he d'instal·lar espeak-ng&lt;br /&gt;
&lt;br /&gt;
==Instal·lació espeak-ng==&lt;br /&gt;
&lt;br /&gt;
'''NOTA1''': aquest procés el faig dues vegades, perquè la primera vegada l'he fet fora del venv, i la segona vegada dins del venv, que seria el correcte.&lt;br /&gt;
&lt;br /&gt;
'''NOTA2''': el model de síntesi que faré servir finalment serà el Matxa V2, que funciona per grafemes, i això vol dir que aquest model no necessita el espeak-ng.&lt;br /&gt;
&lt;br /&gt;
Instal·lo espeak-ng a la màquina, fora d'un venv, perquè ho faré servir bastant.&lt;br /&gt;
&lt;br /&gt;
previ, les eines de make per compilar projectes C:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install autoconf automake libtool-bin pkg-config build-essential&lt;br /&gt;
&lt;br /&gt;
$ which aclocal&lt;br /&gt;
/usr/bin/aclocal&lt;br /&gt;
&lt;br /&gt;
$ aclocal --version&lt;br /&gt;
aclocal (GNU automake) 1.16.5&lt;br /&gt;
&lt;br /&gt;
sudo apt install libtool&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh -&amp;gt; crec que dóna error...&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
(ara ja funciona)&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja ho tinc instal·lat.&lt;br /&gt;
&lt;br /&gt;
Exportem les variables d'entorn&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTA: Val la pena afegir aquestes tres línies al final del ~/.bashrc (o a un script activate_env.sh propi que sourregis cada cop abans de treballar-hi), perquè si no les hauràs de tornar a exportar cada vegada que obris terminal nova.&lt;br /&gt;
&lt;br /&gt;
4. Un parell de dependències més que demana Aina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''NOTA''': he fet el fallo que ho hauria d'haver fet amb el venv del projecte que estava fent. Per tant, torno a activar el venv i faig la instal·lació del espeak-ng&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(torno a estar dins del venv, i torno a fer la instal·lació del espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ espeak-ng --voices=ca&lt;br /&gt;
Pty Language       Age/Gender VoiceName          File                 Other Languages&lt;br /&gt;
 5  ca              --/M      Catalan            roa/ca               &lt;br /&gt;
 5  ca-ba           --/M      Catalan_(Balearic) roa/ca-ba            &lt;br /&gt;
 5  ca-nw           --/M      Catalan_(North-western) roa/ca-nw            &lt;br /&gt;
 5  ca-va           --/M      Catalan_(Valencian) roa/ca-va &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja tinc la llibreria TTS instal·lada.&lt;br /&gt;
&lt;br /&gt;
(en aquest punt hauria de recordar de com funciona espeak-ng)&lt;br /&gt;
&lt;br /&gt;
Ja puc continuar en el punt on estava abans, de fer una prova de síntesi: (recordem que ara, per acabar de fer la síntesi, es farà servir espeak-ng)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ja ho tinc, ho ha fet bastant bé, amb algun error. Puc provar els altres models, o altres speakers.&lt;br /&gt;
&lt;br /&gt;
Tinc aquest codi, que no funciona massa bé:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* quins són els models que puc fer servir en comptes de &amp;quot;tts_models/ca/custom/vits&amp;quot;?&lt;br /&gt;
* quins són els speakers que puc fer servir a més d'&amp;quot;ona&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
&lt;br /&gt;
models = TTS().list_models()&lt;br /&gt;
# Segons la versió, list_models() retorna una llista o un objecte ModelManager&lt;br /&gt;
noms = models if isinstance(models, list) else models.list_models()&lt;br /&gt;
print([m for m in noms if &amp;quot;/ca/&amp;quot; in m or &amp;quot;/cat/&amp;quot; in m])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Retorna:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
['tts_models/ca/custom/vits']&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
només em retorna un model:&lt;br /&gt;
&lt;br /&gt;
tts_models/ca/custom/vits: el que ja fas servir. És multi-speaker, entrenat amb dades de Festcat i Google Catalan.&lt;br /&gt;
&lt;br /&gt;
Vull mirar tots els speakers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;)&lt;br /&gt;
print(tts.speakers)&lt;br /&gt;
...', 'jan', 'mar', 'ona', 'pau', 'pep', 'pol', 'teo']&lt;br /&gt;
&lt;br /&gt;
for s in tts.speakers[:10]:&lt;br /&gt;
    tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova.&amp;quot;, speaker=s, file_path=f&amp;quot;/home/joan/projectes/t001_{s}.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'/home/joan/projectes/t001_00236e350cc84b94a6684f182acf96e68963d7fa1164d4fa56da20f46f210b2dd3ecf189e97fb3c94113a54c12dc20550508f5b7b9b37e1873898d58a308feb5.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00459.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00762.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00983a845f95493fb27125b114c635f3b40060efaee167d32d8a3dd040c877713446c7bd3e6944641227bdb4165ecb8d684ec2ef66c817e65e77c52cc50e62ed.wav'&lt;br /&gt;
'/home/joan/projectes/t001_01591.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02452.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02689.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02992.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02f7d61edf5063ca42953b1068539f1572985aa9448555cfd8d7667121eeedc72c912d95cf33abf61a1f9620f2a01be4251a53aa5440d15849003fb31210d830.wav'&lt;br /&gt;
'/home/joan/projectes/t001_03115.wav'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I canvio la línia i provo les diferents veus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;jan&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_jan.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;mar&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_mar.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_ona.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pau&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pau.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pep&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pep.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pol&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pol.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;teo&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_teo.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La qualitat no és molt bona:&lt;br /&gt;
&lt;br /&gt;
* La llibreria original TTS de Coqui ja no es manté, perquè l'empresa va tancar. El fork mantingut és coqui-tts (pip install coqui-tts), que funciona amb el mateix codi i sol donar menys problemes amb versions noves de Python i PyTorch.&lt;br /&gt;
* El Projecte AINA (BSC) ha publicat models catalans més recents a Hugging Face, com Matxa amb el vocoder alVoCat, que tenen diversos accents i solen sonar més naturals. No es carreguen amb TTS(...): tenen el seu propi codi d'inferència. -&amp;gt; '''aquest és el que farem servir'''&lt;br /&gt;
&lt;br /&gt;
Un codi més complet és el que em proposa Claude: (que és el model del projecte AINA (BSC))&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install huggingface_hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''prova.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import glob&lt;br /&gt;
from huggingface_hub import snapshot_download&lt;br /&gt;
from TTS.utils.synthesizer import Synthesizer&lt;br /&gt;
&lt;br /&gt;
# Baixa el model (només cal la primera vegada, es queda en cau)&lt;br /&gt;
model_dir = snapshot_download(repo_id=&amp;quot;projecte-aina/tts-ca-coqui-vits-multispeaker&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Localitza els fitxers dins la carpeta &amp;quot;model&amp;quot;&lt;br /&gt;
config_path = f&amp;quot;{model_dir}/model/config.json&amp;quot;&lt;br /&gt;
speakers_path = glob.glob(f&amp;quot;{model_dir}/model/speakers*.pth&amp;quot;)[0]&lt;br /&gt;
checkpoint_candidates = [&lt;br /&gt;
    p for p in glob.glob(f&amp;quot;{model_dir}/model/*.pth&amp;quot;)&lt;br /&gt;
    if &amp;quot;speakers&amp;quot; not in p&lt;br /&gt;
]&lt;br /&gt;
model_path = checkpoint_candidates[0]&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Checkpoint:&amp;quot;, model_path)&lt;br /&gt;
print(&amp;quot;Config:&amp;quot;, config_path)&lt;br /&gt;
print(&amp;quot;Speakers:&amp;quot;, speakers_path)&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    model_path, config_path, speakers_path, None, None, None,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Mostra els parlants disponibles&lt;br /&gt;
print(&amp;quot;Parlants disponibles:&amp;quot;, synthesizer.tts_model.speaker_manager.speaker_names[:10])&lt;br /&gt;
&lt;br /&gt;
text = &amp;quot;Bon dia! Això és una prova de síntesi de veu en català.&amp;quot;&lt;br /&gt;
speaker = synthesizer.tts_model.speaker_manager.speaker_names[0]&lt;br /&gt;
&lt;br /&gt;
wav = synthesizer.tts(text, speaker_name=speaker)&lt;br /&gt;
synthesizer.save_wav(wav, &amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
print(&amp;quot;Fet! Genera't: prova.wav&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dóna un error que el Claude el sap solucionar:&lt;br /&gt;
&lt;br /&gt;
Substitueix la crida al Synthesizer per:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    tts_checkpoint=model_path,&lt;br /&gt;
    tts_config_path=config_path,&lt;br /&gt;
    tts_speakers_file=speakers_path,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puc provar amb els parlants: 'mar' (833), 'ona'(834), 'pau'(835), 'pep'(836), 'pol'(837), 'teo'(838), 'uri'(839)&lt;br /&gt;
&lt;br /&gt;
hi ha 840 parlants.&lt;br /&gt;
&lt;br /&gt;
per tant els índex d'aquests són: 833, 834, 835, 836, 837, 838, 839&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables. &lt;br /&gt;
&lt;br /&gt;
aquestes veus (Festcat) es corresponen totes a parlants de català central. uri seria una mica unisex.&lt;br /&gt;
&lt;br /&gt;
Però n'hi ha moltes d'altres de veus (840 parlants)&lt;br /&gt;
&lt;br /&gt;
Sobre les 840 veus&lt;br /&gt;
&lt;br /&gt;
La fitxa del model parla de 255 parlants, però tu en veus 840. No ho he trobat documentat, però és habitual en models de Coqui que el fitxer speakers.pth inclogui tots els identificadors que apareixien a les dades de partida. Això no vol dir que tots tinguin prou material d'entrenament. A Common Voice molts voluntaris només han gravat unes poques frases, i és probable que el model hagi après molt poc d'aquests parlants.&lt;br /&gt;
&lt;br /&gt;
A la pràctica, això fa que la qualitat sigui molt desigual:&lt;br /&gt;
&lt;br /&gt;
* Els parlants de Festcat (ona, pau,...) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables.&lt;br /&gt;
* Els parlants de Common Voice amb moltes gravacions poden sonar bé, però amb el soroll i la variabilitat de gravacions casolanes.&lt;br /&gt;
* Els parlants amb molt poques gravacions sovint sonen genèrics, inestables o amb artefactes.&lt;br /&gt;
&lt;br /&gt;
editar el config.json&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls -la /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
joe /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i en el config.json apuntem la ruta real:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;speakers_file&amp;quot;: &amp;quot;/home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/speakers.pth&amp;quot;,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tornem a provar, i finalment ha funcionat!&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 prova.py&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
7955f7d04b0a4ba49c653677f215265658afde6e89fdd2391eb714531056']&lt;br /&gt;
Fet! Genera't: prova.wav&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara sí que se sent molt bé!&lt;br /&gt;
&lt;br /&gt;
Per tant, ja tinc un codi per fer síntesi de veu en català amb una veu molt bona&lt;br /&gt;
&lt;br /&gt;
Puc provar els altres speaker_names i els altres models&lt;br /&gt;
&lt;br /&gt;
he provat fins a 15 veus, i sembla ser que encara n'hi ha més. El model que he provat és: tts-ca-coqui-vits-multispeaker&lt;br /&gt;
&lt;br /&gt;
* https://huggingface.co/projecte-aina/tts-ca-coqui-vits-multispeaker&lt;br /&gt;
* https://huggingface.co/spaces/softcatala/comparativa-tts-catala&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299237</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299237"/>
		<updated>2026-10-10T21:19:58Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi/clonació. És a dir, jo el que volia fer aquí ja és la clonació. Aquesta tècnica s'emmarca amb la tècnica de clonació directa amb un model zero-shot multilingüe. Models com F5-TTS permeten clonar una veu a partir només d'uns segons d'àudio i generar directament en l'idioma objectiu. Els models que es poden fer servir són XTTS-v2 (Coqui), F5-TTS o GPT-SoVITS (estic provant F5-TTS), i el problema és que cap d'aquests models té el català com a idioma oficialment suportat de sèrie.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
=2a prova: model VITS=&lt;br /&gt;
&lt;br /&gt;
2a prova per a la síntesi d'una veu en català&lt;br /&gt;
* https://claude.ai/chat/a77d2c6c-1051-4733-a6a8-31c5abe7b322&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install TTS &lt;br /&gt;
ERROR: Ignored the following versions that require a different python version: 0.0.10.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.10.3 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.11 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.12 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.13.2 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.14.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.15.1 Requires-Python &amp;gt;=3.6.0,&amp;lt;3.9; 0.0.9 Requires-Python ... &amp;gt;=3.7.0,&amp;lt;3.11; 0.7.1 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.8.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11; 0.9.0 Requires-Python &amp;gt;=3.7.0,&amp;lt;3.11&lt;br /&gt;
ERROR: Could not find a version that satisfies the requirement TTS (from versions: none)&lt;br /&gt;
ERROR: No matching distribution found for TTS&lt;br /&gt;
&lt;br /&gt;
Confirmat: el paquet TTS original de Coqui està abandonat (l'empresa va tancar) i el darrer release no accepta Python ≥3.12, que és probablement el que tens instal·lat. Hi ha un fork actiu mantingut per Idiap que ha canviat de nom a coqui-tts.&lt;br /&gt;
&lt;br /&gt;
pip install coqui-tts -&amp;gt; ara sí&lt;br /&gt;
&lt;br /&gt;
Aquest fork suporta Python 3.10 fins a &amp;lt;3.13 (i les últimes versions ja arriben fins &amp;lt;3.14). Si el teu python3 --version et dona 3.13 o més nou, hauràs de crear el venv amb una versió compatible:&lt;br /&gt;
&lt;br /&gt;
Prova ràpida amb el model multi-parlant:&lt;br /&gt;
&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
ImportError: cannot import name 'isin_mps_friendly' from 'transformers.pytorch_utils' (/home/joan/veu-catala/venv/lib/python3.12/site-packages/transformers/pytorch_utils.py)&lt;br /&gt;
&lt;br /&gt;
Trobat exactament: és un problema conegut i molt recent — transformers 5.x va eliminar la funció isin_mps_friendly que coqui-tts encara fa servir internament (a TTS/tts/layers/tortoise/autoregressive.py). Se't deu haver instal·lat automàticament una versió massa nova de transformers.&lt;br /&gt;
&lt;br /&gt;
Solució&lt;br /&gt;
&lt;br /&gt;
Fixa transformers a una versió anterior a la 5.0:&lt;br /&gt;
&lt;br /&gt;
pip install &amp;quot;transformers==4.57.6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$ pip show transformers&lt;br /&gt;
Name: transformers&lt;br /&gt;
Version: 4.57.6&lt;br /&gt;
&lt;br /&gt;
$ python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits-multispeaker&amp;quot;)  # o el nom exacte del repo d'Aina a HF&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;,&lt;br /&gt;
                 speaker=&amp;quot;ona&amp;quot;,&lt;br /&gt;
                 file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Els models que podem fer servir estan aquí:&lt;br /&gt;
https://huggingface.co/spaces/projecte-aina/catalan_tts_arena&lt;br /&gt;
i són:&lt;br /&gt;
-Vits 2&lt;br /&gt;
-Matxa-TTS&lt;br /&gt;
-Matxa-TTS-multiaccent&lt;br /&gt;
-StableTTS&lt;br /&gt;
-StyleTTS 2&lt;br /&gt;
&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
&lt;br /&gt;
FileNotFoundError: [!] No espeak backend found. Install espeak-ng or espeak to your system.&lt;br /&gt;
primer he d'instal·lar espeak-ng&lt;br /&gt;
&lt;br /&gt;
Instal·lo espeak-ng a la màquina, fora d'un venv, perquè ho faré servir bastant.&lt;br /&gt;
&lt;br /&gt;
previ, les eines de make per compilar projectes C:&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install autoconf automake libtool-bin pkg-config build-essential&lt;br /&gt;
&lt;br /&gt;
$ which aclocal&lt;br /&gt;
/usr/bin/aclocal&lt;br /&gt;
&lt;br /&gt;
$ aclocal --version&lt;br /&gt;
aclocal (GNU automake) 1.16.5&lt;br /&gt;
&lt;br /&gt;
sudo apt install libtool&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
(ara ja funciona)&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
ja ho tinc instal·lat.&lt;br /&gt;
3. Exporta les variables d'entorn&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
NOTA:&lt;br /&gt;
Val la pena afegir aquestes tres línies al final del ~/.bashrc (o a un script activate_env.sh propi que sourregis cada cop abans de treballar-hi), perquè si no les hauràs de tornar a exportar cada vegada que obris terminal nova.&lt;br /&gt;
&lt;br /&gt;
4. Un parell de dependències més que demana Aina&lt;br /&gt;
bash&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
&lt;br /&gt;
NOTA: he fet el fallo que ho hauria d'haver fet amb el venv del projecte que estava fent. Per tant, torno a activar el venv i faig la instal·lació del espeak&lt;br /&gt;
&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
(torno a estar dins del venv, i torno a fer la instal·lació del espeak-ng)&lt;br /&gt;
&lt;br /&gt;
cd ~/veu-catala&lt;br /&gt;
git clone https://github.com/projecte-aina/espeak-ng.git&lt;br /&gt;
cd espeak-ng&lt;br /&gt;
&lt;br /&gt;
./autogen.sh&lt;br /&gt;
./configure --prefix=$HOME/veu-catala/espeak-ng-build&lt;br /&gt;
make&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
export ESPEAK_DATA_PATH=$HOME/veu-catala/espeak-ng-build/share/espeak-ng-data&lt;br /&gt;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/veu-catala/espeak-ng-build/lib&lt;br /&gt;
export PATH=$HOME/veu-catala/espeak-ng-build/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
pip cache purge&lt;br /&gt;
pip install mecab-python3 unidic-lite&lt;br /&gt;
(ara sí!)&lt;br /&gt;
&lt;br /&gt;
$ espeak-ng --voices=ca&lt;br /&gt;
Pty Language       Age/Gender VoiceName          File                 Other Languages&lt;br /&gt;
 5  ca              --/M      Catalan            roa/ca               &lt;br /&gt;
 5  ca-ba           --/M      Catalan_(Balearic) roa/ca-ba            &lt;br /&gt;
 5  ca-nw           --/M      Catalan_(North-western) roa/ca-nw            &lt;br /&gt;
 5  ca-va           --/M      Catalan_(Valencian) roa/ca-va &lt;br /&gt;
&lt;br /&gt;
python -c &amp;quot;from TTS.api import TTS; print('OK')&amp;quot;&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
(en aquest punt hauria de recordar de com funciona espeak-ng)&lt;br /&gt;
&lt;br /&gt;
Ja puc continuar en el punt on estava abans, de fer una prova de síntesi:&lt;br /&gt;
&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
ja ho tinc, ho ha fet bastant bé, amb algun error. Puc provar els altres models, o altres speakers.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
Tinc aquest codi, que no funciona massa bé:&lt;br /&gt;
&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;) # funciona! descarrega el model&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu en català.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=&amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
quins són els models que puc fer servir en comptes de &amp;quot;tts_models/ca/custom/vits&amp;quot;?&lt;br /&gt;
quins són els speakers que puc fer servir a més d'&amp;quot;ona&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
from TTS.api import TTS&lt;br /&gt;
&lt;br /&gt;
models = TTS().list_models()&lt;br /&gt;
# Segons la versió, list_models() retorna una llista o un objecte ModelManager&lt;br /&gt;
noms = models if isinstance(models, list) else models.list_models()&lt;br /&gt;
print([m for m in noms if &amp;quot;/ca/&amp;quot; in m or &amp;quot;/cat/&amp;quot; in m])&lt;br /&gt;
&lt;br /&gt;
['tts_models/ca/custom/vits']&lt;br /&gt;
&lt;br /&gt;
només em retorna un model:&lt;br /&gt;
&lt;br /&gt;
tts_models/ca/custom/vits: el que ja fas servir. És multi-speaker, entrenat amb dades de Festcat i Google Catalan.&lt;br /&gt;
&lt;br /&gt;
tts = TTS(&amp;quot;tts_models/ca/custom/vits&amp;quot;)&lt;br /&gt;
print(tts.speakers)&lt;br /&gt;
...', 'jan', 'mar', 'ona', 'pau', 'pep', 'pol', 'teo']&lt;br /&gt;
&lt;br /&gt;
for s in tts.speakers[:10]:&lt;br /&gt;
    tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova.&amp;quot;, speaker=s, file_path=f&amp;quot;/home/joan/projectes/t001_{s}.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
'/home/joan/projectes/t001_00236e350cc84b94a6684f182acf96e68963d7fa1164d4fa56da20f46f210b2dd3ecf189e97fb3c94113a54c12dc20550508f5b7b9b37e1873898d58a308feb5.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00459.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00762.wav'&lt;br /&gt;
'/home/joan/projectes/t001_00983a845f95493fb27125b114c635f3b40060efaee167d32d8a3dd040c877713446c7bd3e6944641227bdb4165ecb8d684ec2ef66c817e65e77c52cc50e62ed.wav'&lt;br /&gt;
'/home/joan/projectes/t001_01591.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02452.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02689.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02992.wav'&lt;br /&gt;
'/home/joan/projectes/t001_02f7d61edf5063ca42953b1068539f1572985aa9448555cfd8d7667121eeedc72c912d95cf33abf61a1f9620f2a01be4251a53aa5440d15849003fb31210d830.wav'&lt;br /&gt;
'/home/joan/projectes/t001_03115.wav'&lt;br /&gt;
&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;jan&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_jan.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;mar&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_mar.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;ona&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_ona.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pau&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pau.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pep&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pep.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;pol&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_pol.wav&amp;quot;)&lt;br /&gt;
tts.tts_to_file(text=&amp;quot;Bon dia, això és una prova de síntesi de veu.&amp;quot;, speaker=&amp;quot;teo&amp;quot;, file_path=f&amp;quot;/home/joan/projectes/t001_teo.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
La qualitat no és molt bona:&lt;br /&gt;
&lt;br /&gt;
-La llibreria original TTS de Coqui ja no es manté, perquè l'empresa va tancar. El fork mantingut és coqui-tts (pip install coqui-tts), que funciona amb el mateix codi i sol donar menys problemes amb versions noves de Python i PyTorch.&lt;br /&gt;
-El Projecte AINA (BSC) ha publicat models catalans més recents a Hugging Face, com Matxa amb el vocoder alVoCat, que tenen diversos accents i solen sonar més naturals. No es carreguen amb TTS(...): tenen el seu propi codi d'inferència.&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Un codi més complet és el que em proposa Claude: (que és el model del projecte AINA (BSC))&lt;br /&gt;
&lt;br /&gt;
pip install huggingface_hub&lt;br /&gt;
&lt;br /&gt;
script prova.py:&lt;br /&gt;
&lt;br /&gt;
import glob&lt;br /&gt;
from huggingface_hub import snapshot_download&lt;br /&gt;
from TTS.utils.synthesizer import Synthesizer&lt;br /&gt;
&lt;br /&gt;
# Baixa el model (només cal la primera vegada, es queda en cau)&lt;br /&gt;
model_dir = snapshot_download(repo_id=&amp;quot;projecte-aina/tts-ca-coqui-vits-multispeaker&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Localitza els fitxers dins la carpeta &amp;quot;model&amp;quot;&lt;br /&gt;
config_path = f&amp;quot;{model_dir}/model/config.json&amp;quot;&lt;br /&gt;
speakers_path = glob.glob(f&amp;quot;{model_dir}/model/speakers*.pth&amp;quot;)[0]&lt;br /&gt;
checkpoint_candidates = [&lt;br /&gt;
    p for p in glob.glob(f&amp;quot;{model_dir}/model/*.pth&amp;quot;)&lt;br /&gt;
    if &amp;quot;speakers&amp;quot; not in p&lt;br /&gt;
]&lt;br /&gt;
model_path = checkpoint_candidates[0]&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;Checkpoint:&amp;quot;, model_path)&lt;br /&gt;
print(&amp;quot;Config:&amp;quot;, config_path)&lt;br /&gt;
print(&amp;quot;Speakers:&amp;quot;, speakers_path)&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    model_path, config_path, speakers_path, None, None, None,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Mostra els parlants disponibles&lt;br /&gt;
print(&amp;quot;Parlants disponibles:&amp;quot;, synthesizer.tts_model.speaker_manager.speaker_names[:10])&lt;br /&gt;
&lt;br /&gt;
text = &amp;quot;Bon dia! Això és una prova de síntesi de veu en català.&amp;quot;&lt;br /&gt;
speaker = synthesizer.tts_model.speaker_manager.speaker_names[0]&lt;br /&gt;
&lt;br /&gt;
wav = synthesizer.tts(text, speaker_name=speaker)&lt;br /&gt;
synthesizer.save_wav(wav, &amp;quot;prova.wav&amp;quot;)&lt;br /&gt;
print(&amp;quot;Fet! Genera't: prova.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
dóna un error que el Claude el sap solucionar:&lt;br /&gt;
&lt;br /&gt;
Substitueix la crida al Synthesizer per:&lt;br /&gt;
&lt;br /&gt;
synthesizer = Synthesizer(&lt;br /&gt;
    tts_checkpoint=model_path,&lt;br /&gt;
    tts_config_path=config_path,&lt;br /&gt;
    tts_speakers_file=speakers_path,&lt;br /&gt;
    use_cuda=True,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
Puc provar amb els parlants:&lt;br /&gt;
'mar' (833), 'ona'(834), 'pau'(835), 'pep'(836), 'pol'(837), 'teo'(838), 'uri'(839)&lt;br /&gt;
hi ha 840 parlants.&lt;br /&gt;
per tant els índex d'aquests són&lt;br /&gt;
833, 834, 835, 836, 837, 838, 839&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau…) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
aquestes veus (Festcat) es corresponen totes a parlants de català central. uri seria una mica unisex.&lt;br /&gt;
Però n'hi ha moltes d'altres de veus (840 parlants)&lt;br /&gt;
&lt;br /&gt;
Sobre les 840 veus&lt;br /&gt;
&lt;br /&gt;
La fitxa del model parla de 255 parlants, però tu en veus 840. No ho he trobat documentat, però és habitual en models de Coqui que el fitxer speakers.pth inclogui tots els identificadors que apareixien a les dades de partida. Això no vol dir que tots tinguin prou material d'entrenament. A Common Voice molts voluntaris només han gravat unes poques frases, i és probable que el model hagi après molt poc d'aquests parlants.&lt;br /&gt;
&lt;br /&gt;
A la pràctica, això fa que la qualitat sigui molt desigual:&lt;br /&gt;
&lt;br /&gt;
Els parlants de Festcat (ona, pau…) i d'OpenSLR tenen hores de gravació d'estudi. Són les veus més netes i estables.&lt;br /&gt;
Els parlants de Common Voice amb moltes gravacions poden sonar bé, però amb el soroll i la variabilitat de gravacions casolanes.&lt;br /&gt;
Els parlants amb molt poques gravacions sovint sonen genèrics, inestables o amb artefactes.&lt;br /&gt;
&lt;br /&gt;
editar el config.json&lt;br /&gt;
ls -la /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
joe /home/joan/.cache/huggingface/hub/models--projecte-aina--tts-ca-coqui-vits-multispeaker/snapshots/b90a4d6a94475a367ec4be8b9fca14e348240b6d/model/config.json&lt;br /&gt;
&lt;br /&gt;
python3 prova.py&lt;br /&gt;
Finalment ha funcionat!&lt;br /&gt;
...&lt;br /&gt;
7955f7d04b0a4ba49c653677f215265658afde6e89fdd2391eb714531056']&lt;br /&gt;
Fet! Genera't: prova.wav&lt;br /&gt;
&lt;br /&gt;
I ara sí que se sent molt bé!&lt;br /&gt;
Per tant, ja tinc un codi per fer síntesi de veu en català amb una veu molt bona&lt;br /&gt;
Puc provar els altres speaker_names i els altres models&lt;br /&gt;
&lt;br /&gt;
he provat fins a 15 veus, i sembla ser que encara n'hi ha més. El model que he provat és: tts-ca-coqui-vits-multispeaker&lt;br /&gt;
&lt;br /&gt;
https://huggingface.co/projecte-aina/tts-ca-coqui-vits-multispeaker&lt;br /&gt;
https://huggingface.co/spaces/softcatala/comparativa-tts-catala&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299236</id>
		<title>TTS: Síntesi de veu</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=TTS:_S%C3%ADntesi_de_veu&amp;diff=299236"/>
		<updated>2026-10-10T21:09:04Z</updated>

		<summary type="html">&lt;p&gt;Joan: Es crea la pàgina amb «__TOC__  =1a prova: F5-TTS, no funciona=  (no acaba de funcionar, resultats inconsistents)  *https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322  (m'he fet un l...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=1a prova: F5-TTS, no funciona=&lt;br /&gt;
&lt;br /&gt;
(no acaba de funcionar, resultats inconsistents)&lt;br /&gt;
&lt;br /&gt;
*https://chatgpt.com/c/6ab042c5-4344-83eb-90bb-83cad23ab322&lt;br /&gt;
&lt;br /&gt;
(m'he fet un lio amb el XTTS-v2 i la instal·lació de Coqui TTS)&lt;br /&gt;
&lt;br /&gt;
prompt: &amp;quot;vull fer clonació i síntesi de veu en català amb F5-TTS. Tinc una RTX5060 Ti 16GB.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Per català, però, hi ha un punt important: el model base de F5-TTS no és específicament un model català, així que la qualitat de pronunciació catalana dependrà molt del text, del model/checkpoint i de l'àudio de referència. Si vols qualitat alta i consistent en català, podem plantejar també fine-tuning.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p F5-TTS&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
python -m pip install --upgrade pip setuptools wheel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Instal·la PyTorch&lt;br /&gt;
El repositori actual de F5-TTS documenta PyTorch amb CUDA 12.8, i PyTorch publica wheels específiques cu128.&lt;br /&gt;
&lt;br /&gt;
Jo tinc CUDA 13.2, però no passa res&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 \&lt;br /&gt;
    --extra-index-url https://download.pytorch.org/whl/cu128&lt;br /&gt;
&lt;br /&gt;
$ python3&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA:&amp;quot;, torch.version.cuda)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
print(&amp;quot;Compute capability:&amp;quot;, torch.cuda.get_device_capability(0))&lt;br /&gt;
&lt;br /&gt;
PyTorch: 2.8.0+cu128&lt;br /&gt;
CUDA: 12.8&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
Compute capability: (12, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Instal·la F5-TTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone https://github.com/SWivid/F5-TTS.git&lt;br /&gt;
&lt;br /&gt;
cd F5-TTS&lt;br /&gt;
pip install -e .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ara el meu directori de treball és ~/F5-TTS/F5-TTS. No confondre el primer amb el segon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-cli --help&lt;br /&gt;
$ f5-tts_infer-gradio --help -&amp;gt; es descarrega el model&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Primera prova: interfície web&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ f5-tts_infer-gradio&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normalment et donarà una adreça local del tipus:&lt;br /&gt;
&lt;br /&gt;
* http://127.0.0.1:7860&lt;br /&gt;
&lt;br /&gt;
Obre-la al navegador.&lt;br /&gt;
&lt;br /&gt;
La interfície de F5-TTS permet fer inferència a partir d'una veu de referència i generar text nou. El projecte actual també disposa de funcionalitats d'inferència per chunks i altres modes.&lt;br /&gt;
&lt;br /&gt;
però jo no estic davant de l'ordinador. I no puc fer:&lt;br /&gt;
&lt;br /&gt;
* http://79.156.157.3:7860&lt;br /&gt;
&lt;br /&gt;
perquè el port 7860 no està obert&lt;br /&gt;
(m'he quedat aquí)&lt;br /&gt;
(...)&lt;br /&gt;
&lt;br /&gt;
Gravo una veu que representa que és de referència, i a partir d'aquesta veu podré fer síntesi.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ arecord -f cd  gravacio.wav&lt;br /&gt;
&lt;br /&gt;
scp gravacio.* joan@192.168.1.184:/home/joan/Baixades&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
es genera el fitxer /home/joan/Baixades/prova.wav&lt;br /&gt;
&lt;br /&gt;
NOTA: recordem que en el portàtil tinc un punt de muntatge a /home/joan/projectes en el servidor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ find ~/.cache/gface -type d -iname &amp;quot;*F5*&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_v1_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/models--SWivid--F5-TTS/snapshots/84e5a410d9cead4de2f847e7c9369a6440bdfaca/F5TTS_Base&lt;br /&gt;
/home/joan/.cache/huggingface/hub/.locks/models--SWivid--F5-TTS&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio /home/joan/Baixades/gravacio.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood. The streets were almost empty, and a thick fog covered the old houses. As she walked towards the house she had recently inherited from her grandmother, she noticed a strange light shining from one of the upstairs windows. Emily stopped and stared at it for a moment. She was certain that the house had been empty for years, so she could not understand who could be inside.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova2.wav --speed 0.06&lt;br /&gt;
&lt;br /&gt;
$ f5-tts_infer-cli --model F5TTS_Base --ref_audio /home/joan/projectes/gravacio2.wav --ref_text &amp;quot;It was a cold and quiet evening when Emily arrived in the small village of Blackwood.&amp;quot; --gen_text &amp;quot;Good morning. This is a simple test of generating an English speech from a text&amp;quot; --output_dir /home/joan/projectes --output_file prova.wav --speed 0.06&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No m'acaba de sortir. Obtinc uns resultats en anglès bastant inconsistents, i en català no ho aconseguiré.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299235</id>
		<title>Joanillo mediawiki: INS Jaume Balmes</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299235"/>
		<updated>2026-10-10T21:01:34Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Tasques PLN i Tecnologies del Llenguatge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per qualsevol consulta, enviar un mail a [mailto:joanqc_arroba_gmail_dot_com Joan Quintana]&lt;br /&gt;
=DAW. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[DAW-M06-WEC]]. Desenvolupament d'Aplicacions Web (DAW)&lt;br /&gt;
=ASIX. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[ASIX-M09-IAW]]. Implantació d'Aplicacions Web (ASIX)&lt;br /&gt;
*[[ASIX-M10-UF2]]. Amplantació de Bases de dades (ASIX)&lt;br /&gt;
&lt;br /&gt;
=FP Informàtica: Contingut antic=&lt;br /&gt;
*[[Servidor BBDD]]&lt;br /&gt;
*[[ASIX-M11-SAD]]. Seguretat i Alta Disponibilitat&lt;br /&gt;
*[[DAI-C8-EC]]&lt;br /&gt;
*[[ASI-C6-ASGBD]]&lt;br /&gt;
*[[ASI-C3-IAIG]]&lt;br /&gt;
*[[Assignatura PHP]]&lt;br /&gt;
*[[LPI: Linux Professional Institute]]&lt;br /&gt;
*[[Normativa d'aula. Exemples]]&lt;br /&gt;
*[[Aula 44 (Ubuntu). Configuració]]&lt;br /&gt;
*[[Enviar notes als alumnes, fitxer CSV]]&lt;br /&gt;
*[[Extraescolar Robòtica 2015-2016]]&lt;br /&gt;
*[[Extraescolar Robòtica 2016-2017]] (Construcció d'un SIMON)&lt;br /&gt;
&lt;br /&gt;
= HowTo Ubuntu =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Alias]]&lt;br /&gt;
*Cercar fitxers amb find: https://help.ubuntu.com/community/find&lt;br /&gt;
*[[Cercar dins dels fitxers]] (i carpetes amb més fitxers)&lt;br /&gt;
*Expressions regulars: [[Expressions_Regulars]]&lt;br /&gt;
*[[Usuaris i grups]]&lt;br /&gt;
*[[Instal·lació Tomcat#Quant a les variables d'entorn]]&lt;br /&gt;
*[[Tips Linux]]&lt;br /&gt;
*'''Editors''': sudo apt-get install joe i sudo apt-get install scite. scite és l'equivalent al Notepad++ (de fet, el Notepad++ es basa en el scite)&lt;br /&gt;
*[[Màscara umask]]&lt;br /&gt;
*[[Establir l'hora del sistema]]&lt;br /&gt;
*Comprimir i descomprimir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar czvf fitxer_comprimit.tgz fitxer1.txt fitxer2.txt dir1 dir2&lt;br /&gt;
tar xvzf fitxer_comprimit.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Releases d'Ubuntu: es pot veure una taula a http://en.wikipedia.org/wiki/Ubuntu&lt;br /&gt;
*[[holamon amb diferents llenguatges de programació]]&lt;br /&gt;
*Per redirigir la sortida d'errors d'una comanda a fitxer: make 2&amp;gt; error.log&lt;br /&gt;
*utilitzar apt-get amb un proxy (institut): &lt;br /&gt;
Editem el fitxer /etc/apt/apt.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Acquire::http::Proxy &amp;quot;http://192.168.0.5:8080&amp;quot;; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També: You can also set a proxy on the fly via a console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export http_proxy=&amp;quot;http://proxy&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you apt/aptitude... etc. from that console, it will use the specified proxy.&lt;br /&gt;
*comanda history (documentar)&lt;br /&gt;
*executar processos en background (&amp;amp;). http://www.networkdictionary.com/software/Linux331.php. (documentar)&lt;br /&gt;
*Trobar informació del processador:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
$ cat /proc/cpuinfo | grep MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Consum de memòria (ordenat per processos que consumeien més memòria):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ps --sort -rss -eo rss,pid,command | head&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===utilitats===&lt;br /&gt;
*[[bc: calculadora CLI]]&lt;br /&gt;
*'''pdftotext''': pdf to text, fa una conversió intel.ligent, de manera que el resultat queda bastant ben formatat. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pdftotext [options] &amp;lt;PDF-file&amp;gt; [&amp;lt;text-file&amp;gt;]&lt;br /&gt;
$ pdftotext -nopgbrk /home/joan/.aMule/Incoming/physical_computing.pdf /home/joan/.aMule/Incoming/physical_computing.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Convertir un CD a mp3''':&lt;br /&gt;
http://installubuntu.blogspot.com/2006/09/como-convertir-cd-mp3.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install sound-juicer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el menú està a Aplicaciones &amp;gt; Sonido y vídeo &amp;gt; Extractor de sonidos de CD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Luego de abrir el programa que se encuentra en &amp;quot;Aplicaciones - sonido y vídeo - Extractor de música de CD's Sound juicer&amp;quot; debe seguir los siguientes pasos:&lt;br /&gt;
1. Ir a Editar - preferencias.&lt;br /&gt;
2. Hacer clic en el botón editar perfiles (abajo-derecha).&lt;br /&gt;
3. Crear un nuevo Profile haciendo clic en &amp;quot;Nuevo&amp;quot;.&lt;br /&gt;
4. Puede colocar el siguiente Nombre de perfil: Calidad de CD, con pérdida mp3.&lt;br /&gt;
5. Luego seleccionarlo y editarlo colocar en Descripción del perfil: Extracción MP3.&lt;br /&gt;
6. En Tubería Gstreamer copiar y pegar lo siguiente:&lt;br /&gt;
audio/x-raw-int,rate=44100,channels=2 ! lame name=enc&lt;br /&gt;
7. Digitar en &amp;quot;Extensión de archivo&amp;quot;: MP3&lt;br /&gt;
8. Seleccionar ¿Está activo?&lt;br /&gt;
9. Hacer clic en Aceptar, luego en &amp;quot;Cerrar&amp;quot; las dos veces siguientes y por último &amp;quot;Cerrar&amp;quot; el programa.&lt;br /&gt;
10. Volver a abrir Sound Juice, e ir a &amp;quot;Editar - Preferencia&amp;quot; y seleccionar en &amp;quot;Formato de salida&amp;quot; &amp;quot;calidad de cd, con pérdida mp3 (audio mp3)&lt;br /&gt;
- y por último cerrar.&lt;br /&gt;
De aquí en adelante debe convertir los CD's a MP3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Buidar la paperera de reciclatge''': important quan m'he quedat sense espai:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo rm -rf ~/.Trash/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per saber quines són les carpetes que ocupen més espai: '''ncdu''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install ncdu&lt;br /&gt;
$ ncdu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Passar de format DVD a mp4''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat *.VOB &amp;gt; movie.vob&lt;br /&gt;
$ ffmpeg -i movie.vob video.mp4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Utilitats de xarxa===&lt;br /&gt;
'''iperf''' per comprovar la velocitat real de xarxa entre dos punts.&lt;br /&gt;
*https://www.linode.com/docs/networking/diagnostics/install-iperf-to-diagnose-network-speed-in-linux/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install iperf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
iPerf requires two systems because one system must act as a server, while the other acts as a client. The client connects to the server you're testing the speed of.&lt;br /&gt;
&lt;br /&gt;
On the node you plan to test, launch iPerf in server mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On your second node, connect to the first. Replace 198.51.100.5 with the first node’s IP address.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -c 192.168.0.116&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
Server listening on TCP port 5001&lt;br /&gt;
TCP window size: 85.3 KByte (default)&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
[  4] local 192.168.0.116 port 5001 connected with 192.168.0.240 port 51900&lt;br /&gt;
[ ID] Interval       Transfer     Bandwidth&lt;br /&gt;
[  4]  0.0-10.0 sec   113 MBytes  94.1 Mbits/sec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per tant la meva connexió és de 100 Mbits/sec (no arriba al teòric de 100).&lt;br /&gt;
&lt;br /&gt;
Si vull testejar un cable llarg per assegurar-me de què el seu rendiment és correcte, en un lloc on no hi ha connexió de xarxa, necessito dos portàtils amb IP fixa. Com que el cable és normal (no creuat), i per fer el test directe necessito un cable creuat, el que he de fer és dues possibilitats:&lt;br /&gt;
*empalmar un tros curt de cable creuat, i així el cable no creuat es converteix en creuat.&lt;br /&gt;
*utilitzar un switch/router, i posar el cable llarg al router, i un altre tros de cable normal també al router des de l'altre portàtil.&lt;br /&gt;
'''NOTA''': ara hi ha targetes de xarxa que poden treballar tant en cables creuats com no creuats.&lt;br /&gt;
===velocitat de la connexió inal·làmbrica (juny 2019)===&lt;br /&gt;
*https://www.cyberciti.biz/tips/linux-find-out-wireless-network-speed-signal-strength.html&lt;br /&gt;
Llista totes les xarxes wifi visibles:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Millor filtrar per la que ens interessa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi | grep JaumeBalmes&lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  79      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  65      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  11    54 Mbit/s  42      ▂▄__  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  12    54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  19      ▂___  WPA1 WPA2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iwconfig wlp1s0 | grep -i --color signal&lt;br /&gt;
Link Quality=45/70  Signal level=-65 dBm &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ watch -n 1 cat /proc/net/wireless&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conèixer especificacions del sistema===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -m&lt;br /&gt;
i686 -&amp;gt; 32 bits&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
...&lt;br /&gt;
model name	: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
arquitectura i kernel version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -r&lt;br /&gt;
3.2.0-49-generic-pae&lt;br /&gt;
&lt;br /&gt;
$ uname -a&lt;br /&gt;
Linux joan-poratolí gamer: Mars Gaming MM018rtatil 3.2.0-49-generic-pae #75-Ubuntu SMP Tue Jun 18 18:00:21 UTC 2013 i686 i686 i386 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lscpu&lt;br /&gt;
Architecture:          i686&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo lshw -c processor&lt;br /&gt;
  *-cpu:0                 &lt;br /&gt;
       description: CPU&lt;br /&gt;
       product: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
       vendor: Intel Corp.&lt;br /&gt;
       physical id: 5&lt;br /&gt;
       bus info: cpu@0&lt;br /&gt;
       version: 6.5.5&lt;br /&gt;
       serial: 0002-0655-0000-0000-0000-0000&lt;br /&gt;
       slot: U2E1&lt;br /&gt;
       size: 1199MHz&lt;br /&gt;
       capacity: 2400MHz&lt;br /&gt;
...ratolí gamer: Mars Gaming MM018&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
memòria:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ free&lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:       3980780    1925680    2055100          0     141292     882996&lt;br /&gt;
-/+ buffers/cache:     901392    3079388&lt;br /&gt;
Swap:      4049916          0    4049916&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/meminfo |grep MemTotal&lt;br /&gt;
MemTotal:    ratolí gamer: Mars Gaming MM018    3980780 kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ vmstat -s&lt;br /&gt;
      3980780 K total memory&lt;br /&gt;
      1901032 K used memory&lt;br /&gt;
       878692 K active memory&lt;br /&gt;
       829180 K inactive memory&lt;br /&gt;
      2079748 K free memory&lt;br /&gt;
       141428 K buffer memory&lt;br /&gt;
       895400 K swap cache&lt;br /&gt;
      4049916 K total swap&lt;br /&gt;
            0 K used swap&lt;br /&gt;
      4049916 K free swap&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===ratolí gamer: Mars Gaming MM018===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://askubuntu.com/questions/19569/how-can-i-assign-actions-to-all-my-mouse-buttons&lt;br /&gt;
per saber quins botons del ratolí es reconeixen:&lt;br /&gt;
$ xev&lt;br /&gt;
&lt;br /&gt;
Per mapejar:&lt;br /&gt;
sudo apt-get install xbindkeys&lt;br /&gt;
&lt;br /&gt;
https://wiki.archlinux.org/index.php/Xbindkeys&lt;br /&gt;
&lt;br /&gt;
$ xbindkeys&lt;br /&gt;
Error : /home/joan/.xbindkeysrc not found or reading not allowed.&lt;br /&gt;
please, create one with 'xbindkeys --defaults &amp;gt; /home/joan/.xbindkeysrc'.&lt;br /&gt;
or, if you want scheme configuration style,&lt;br /&gt;
with 'xbindkeys --defaults-guile &amp;gt; /home/joan/.xbindkeysrc.scm'.&lt;br /&gt;
&lt;br /&gt;
xfce4-terminal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;xterm&amp;quot;do&lt;br /&gt;
#  control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot; control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot;&lt;br /&gt;
    m:0x4 + c:37&lt;br /&gt;
    Control + Control_L &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Command&amp;quot;&lt;br /&gt;
    m:0x3 + c:50&lt;br /&gt;
    Shift + Shift_L &lt;br /&gt;
&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
(TBD)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SHELL===&lt;br /&gt;
*[[Manuals de bash]]&lt;br /&gt;
*[[Script per a crear usuaris]]&lt;br /&gt;
*[[Canviar el prompt per defecte]]&lt;br /&gt;
*[[Truquets bash]]&lt;br /&gt;
*[[xclip. Portapapers, clipboard]]&lt;br /&gt;
*[[xdotool - command-line X11 automation tool]]&lt;br /&gt;
*Fer sudo sense demanar password (Ubuntu 12.04):&lt;br /&gt;
# User privilege specification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amb aquesta comanda estem editant el fitxer /etc/sudoers. Es tracta de posar ''NOPASSWD:'' per tal de què no demani pwd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
root    ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
&lt;br /&gt;
# Members of the admin group may gain root privileges&lt;br /&gt;
%admin ALL=(ALL) ALL&lt;br /&gt;
&lt;br /&gt;
# Allow members of group sudo to execute any command&lt;br /&gt;
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paquets ===&lt;br /&gt;
*[[Instal·lar paquets]]&lt;br /&gt;
=== Grub2 ===&lt;br /&gt;
*[[Grub2]]&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració d'Apache amb Ubuntu]]&lt;br /&gt;
*[[Virtual Host: www.empresalibre.org, wiki.empresalibre.org, blog.empresalibre.org]]&lt;br /&gt;
*[[AWStats: analitzant les estadístiques]]&lt;br /&gt;
*[[Hosting projecte. Possibilitats]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració de Postgres]]&lt;br /&gt;
*[[Còpies de seguretat de Postgres I]]: pg_dump (és el que utilizo per fer els scripts de còpia de seguretat)&lt;br /&gt;
*[[Còpies de seguretat de Postgres II]]: Còpia física del directori data/&lt;br /&gt;
*[[Còpies de seguretat de Postgres III]]: Point-In-Time-Recovery, PITR&lt;br /&gt;
*[[Pràctiques de còpia de seguretat Postgres]]&lt;br /&gt;
*[[PHP-PostgreSQL Functions: programació PHP. Procediments]]&lt;br /&gt;
*[[Teoria PL/pgSQL]]&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Instal·lació Mysql]]&lt;br /&gt;
*[[crear base de dades i usuari per a alumnes]]&lt;br /&gt;
*How To (xuleta) de Mysql per als alumnes: [[Sistemes_Gestors_de_Bases_de_Dades._MySQL._Instal·laci%C3%B3%2C_configuraci%C3%B3_i_%C3%BAs]]&lt;br /&gt;
*[[Optimitzar les taules del Mysql]]&lt;br /&gt;
*[[Mysql cluster]]&lt;br /&gt;
&lt;br /&gt;
=== BD alternatives ===&lt;br /&gt;
*[[SQLite]]&lt;br /&gt;
*[[CouchDB]]&lt;br /&gt;
*[[Curs MongoDB 2014 al PUE]]. http://www.mongodb.org/&lt;br /&gt;
&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració de Samba]]&lt;br /&gt;
=== Servidor DNS (BIND9) ===&lt;br /&gt;
*[[Servidor DNS (BIND9)]]&lt;br /&gt;
=== DynDNS (i noip) (i OVH)===&lt;br /&gt;
*[[DynDNS]]&lt;br /&gt;
*[[Configurar un servidor virutal amb l'Apache]]&lt;br /&gt;
*[[Domini públic amb IP dinàmica]]&lt;br /&gt;
*[[update Abril 2014. noip.com]]&lt;br /&gt;
*[[Migració del servidor joanillo.org a OVH Cloud (núvol)]] (setembre 2020)&lt;br /&gt;
*[[Certificats SSL amb certbot]]&lt;br /&gt;
*[[OVH. VPS Essential jaumebalmes.net]]&lt;br /&gt;
&lt;br /&gt;
=== rsync ===&lt;br /&gt;
*[[rsync]]&lt;br /&gt;
=== Instal·lació Java ===&lt;br /&gt;
*[[Instal·lació Java]]&lt;br /&gt;
*[[Pràctica Hola món]]&lt;br /&gt;
*[[Connexió Java-MySQL bàsica]] (maig 2022)&lt;br /&gt;
&lt;br /&gt;
=== Mediawiki ===&lt;br /&gt;
*[[Instal·lació Mediawiki]]&lt;br /&gt;
*[[xuleta MediaWiki]]&lt;br /&gt;
*[[Protegir automaticament les pàgines - hack mediawiki]]&lt;br /&gt;
*[[Habilitar upload per a imatges i pdf, etc]] (i tar.gz)&lt;br /&gt;
*[[Editar la plantilla d'impressió]]&lt;br /&gt;
*[[Editar la plantilla normal]]&lt;br /&gt;
*[http://meta.wikimedia.org/wiki/MediaWiki_FAQ MediaWiki FAQ]&lt;br /&gt;
*[[Extra Edit Buttons]]&lt;br /&gt;
*[[Còpia de seguretat]]&lt;br /&gt;
*[[Namespaces, plantilles i categories al Mediawiki]]&lt;br /&gt;
*[[Categories definides al meu mediawiki]]&lt;br /&gt;
*[[Hack mediawiki: ficant una entrada des del MySQL]]&lt;br /&gt;
*[[mediawiki sidebar]]&lt;br /&gt;
*[[Extension:SphinxSearch]]: millorar les cerques&lt;br /&gt;
*mediawiki a http://wiki.empresalibre.org, http://wikijoan.dyndns.org, http://localhost/wiki, http://192.168.1.130/wiki: està explicat a [[Virtual_Host:_www.empresalibre.org%2C_wiki.empresalibre.org%2C_blog.empresalibre.org#Configuraci.C3.B3_MediaWiki]]&lt;br /&gt;
*[[cache del mediawiki]]&lt;br /&gt;
*[[Estadístiques d'activitat. Procedures amb MySQL]]&lt;br /&gt;
*[[error: Table './wikidb/searchindex' is marked as crashed]]&lt;br /&gt;
*[[combatre el spam en una mediawiki]]&lt;br /&gt;
*[[Atac wikijoan 29-01-2012]]&lt;br /&gt;
*[[Fórmules matemàtiques amb Latex]]&lt;br /&gt;
*[[(SQL) Recuperar el text d'una pàgina a partir del títol de la pàgina]]&lt;br /&gt;
*[[Crear un nou usuari amb permisos d'edició]]&lt;br /&gt;
*[[Redirecció a l'entrada de Màquines recreatives de la wiki]]&lt;br /&gt;
*[[Migració 1.17 a 1.34 (8 anys)]] (gener 2020, no s'ha fet cap migració en 8 anys)&lt;br /&gt;
*[[Spam octubre 2020]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació Tomcat]]&lt;br /&gt;
&lt;br /&gt;
=== Pentaho ===&lt;br /&gt;
*[[Recursos teoria BI]]&lt;br /&gt;
*[[Pentaho BI Suite Instal·lació]]&lt;br /&gt;
&lt;br /&gt;
=== Mondrian ===&lt;br /&gt;
*[[Instal·lació Mondrian]]&lt;br /&gt;
*[[Instal·lació Mondrian 2010]]&lt;br /&gt;
&lt;br /&gt;
=== PDI-Pentaho Data Integration (aka Kettle) ===&lt;br /&gt;
*[[Introducció a Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Instal·lació Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Primers passos amb PDI]]&lt;br /&gt;
*[[DAI-C8-EC:_Eines_ETL_i_Integració_de_Dades._Kettle]]. Pràctica EC PDI-Kettle-Spoon&lt;br /&gt;
&lt;br /&gt;
=== Compilació del Kernel amb Ubuntu Studio ===&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 1r mètode]]&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 2n mètode]]&lt;br /&gt;
=== How-To Geek Ubuntu ===&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ the How-To Geek]&lt;br /&gt;
=== Runlevel ===&lt;br /&gt;
*[[Runlevel]]&lt;br /&gt;
*[[Executar un script a l'inici]]&lt;br /&gt;
&lt;br /&gt;
=== Pendrives i USB ===&lt;br /&gt;
*[[Instal·lació des del USB (no ha funcionat)]]&lt;br /&gt;
*[[Muntar i formatar el pendrive]]&lt;br /&gt;
&lt;br /&gt;
=== Servidor d'echos (exercici) ===&lt;br /&gt;
*[[Compilació]]&lt;br /&gt;
*[[Dimonitzem el servidor d'echos]]&lt;br /&gt;
*[[Debianitzem el servidor d'echos]]&lt;br /&gt;
*[[Instal·lació del paquet i comprovació]]&lt;br /&gt;
*[[Registre de dimonis. Logging. Syslog]]&lt;br /&gt;
*[[Instal·lació amb configuració (Debconf)]]&lt;br /&gt;
[[Image:echod_0.1-1_i386.deb |echod_0.1-1_i386.deb ]]&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu]]&lt;br /&gt;
*[[Alternatives al SQL*Plus: gqlplus]]&lt;br /&gt;
*[[Clients per a Oracle]]&lt;br /&gt;
*[[PHP-llibreria OCI8]]&lt;br /&gt;
*[[PHP-llibreria OCI8: programació PHP. Procediments]]&lt;br /&gt;
*Manual Instal·lació Oracle 10g+OCI8 sobre Windows, fet per Àlex Adrià:[[Imatge:Installacio_oracle10G_oci8_windows.pdf‎]]&lt;br /&gt;
*Documentació d'Oracle: http://tahiti.oracle.com&lt;br /&gt;
*[[Manual Oracle 9i]]&lt;br /&gt;
*[[Arquitectura Oracle]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo ===&lt;br /&gt;
*[[Assignatura AIAIG]]&lt;br /&gt;
*[[Instal·lació Openbravo]]&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Openbravo 2.50]]&lt;br /&gt;
*[[Instal·lació Openbravo 3]] (abril 2011)&lt;br /&gt;
*[[Entrar al Postgres i fer còpies de seguretat bàsiques]]&lt;br /&gt;
*[[Instal·lar la traducció al castellà]]&lt;br /&gt;
*[[Instal·lar la traducció al català a partir de la del castellà]]&lt;br /&gt;
*[[Primers passos Openbravo]]&lt;br /&gt;
*[[Petita guia d'inici]]&lt;br /&gt;
*[[Càrrega massiva de dades]] (oficial) &lt;br /&gt;
*[[Càrrega massiva de dades II]] (SQL) &lt;br /&gt;
*[[Informes amb Jasper Reports]]&lt;br /&gt;
*[[Documentació]]&lt;br /&gt;
*[[Openbravo Web Services]]&lt;br /&gt;
*[[Llista oficial partners]]&lt;br /&gt;
*[[Canal IRC]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/index.php/Openbravo_ERP_roadmap full de ruta]&lt;br /&gt;
*[[Implantació d'una ERP]]&lt;br /&gt;
*[[Dreceres de teclat Openbravo 2.40]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/Business_Intelligence_Integration Openbravo+Pentaho]&lt;br /&gt;
*Millores versió 2.50: http://wiki.openbravo.com/wiki/Openbravo_ERP_2.50_ReleaseNotes&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*Acceptance Testing: http://wiki.openbravo.com/wiki/index.php/Acceptance_Testing&lt;br /&gt;
*[[Problemes resolts Openbravo]]&lt;br /&gt;
*[[Desenvolupar Openbravo amb Eclipse]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo POS ===&lt;br /&gt;
*[[Instal·lació Openbravo POS]]&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*FAQ: http://wiki.openbravo.com/wiki/OpenbravoPOS_FAQ&lt;br /&gt;
*[[Funcionament del Openbravo POS]]&lt;br /&gt;
*[[Cosetes del Openbravo POS]]&lt;br /&gt;
*Programant Openbrabo POS: &lt;br /&gt;
**http://wiki.openbravo.com/wiki/OpenbravoPOS_Developer_guide&lt;br /&gt;
**http://wiki.openbravo.com/wiki/Openbravo_POS_Scripting_Tutorial&lt;br /&gt;
*[[Instal·lar hardware TPV]]&lt;br /&gt;
*[[Compilar Openbravo POS amb NetBeans i Eclipse]]&lt;br /&gt;
*Manual que proporciona Eines TIC: [[Imatge:7 Guia TPV.pdf]]&lt;br /&gt;
*[[Direct Printing: Epson TM-T70 + Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
=== OpenERP / Tryton ===&lt;br /&gt;
*pdf Jordi Esteve (UPC), Festa Ubuntu 9.04. [[Imatge:Que es openerp.pdf]]&lt;br /&gt;
*[[Instal·lació OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP II]]&lt;br /&gt;
*[[Configuració i documentació Open ERP]]&lt;br /&gt;
*[[OpenERP. Simulant cas real]]&lt;br /&gt;
*[[Models AEAT per a empreses]]&lt;br /&gt;
*[[Monitoritzar canvis en les taules PostgreSQL de OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP 7.0 (maig 2014)]]&lt;br /&gt;
*[[instal·lació Tryton]] (maig 2014) (fork comunitari de OpenERP). (TBD) (per ex, nan-tic.com han passat de OpenERP a Tryton)&lt;br /&gt;
&lt;br /&gt;
=== Abanq ===&lt;br /&gt;
*[[Què és Abanq]]&lt;br /&gt;
*[[Documentació Abanq]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu a partir de les fonts]]&lt;br /&gt;
*[[Treballant amb Abanq: fer una factura]]&lt;br /&gt;
*[[Treballant amb Abanq II]]&lt;br /&gt;
&lt;br /&gt;
=== Eines TIC ===&lt;br /&gt;
*[[Què és Eines TIC]]&lt;br /&gt;
&lt;br /&gt;
=== Sugar CRM ===&lt;br /&gt;
*[[Què és Sugar CRM?]]&lt;br /&gt;
*[[Instal·lació Sugar CRM]]&lt;br /&gt;
*[[Traducció al castella de Sugar CRM]]&lt;br /&gt;
*[[Documentació Sugar CRM]]&lt;br /&gt;
*[[WebServices, SOAP]]&lt;br /&gt;
*[[Integració Sugar CRM i Openbravo]]&lt;br /&gt;
=== vtiger ===&lt;br /&gt;
*[[Instal·lació vTiger]]&lt;br /&gt;
*[[Pràctica vTiger: gestió d'incidències]]&lt;br /&gt;
&lt;br /&gt;
=== Alfresco ===&lt;br /&gt;
*[[Què és un DMS?]]&lt;br /&gt;
*[[Registre i Documentació Alfresco Enterprise]]&lt;br /&gt;
*[[Compilació des de les fonts]]&lt;br /&gt;
*[[Instal·lació Alfresco a Debian]] inclou Tomcat. Ha funcionat&lt;br /&gt;
*[[Instal·lació Alfresco Ubuntu]] només war. De moment no ha funcionat&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Alfresco Community 3.4 - febrer 2011]]&lt;br /&gt;
*[[Documentació Alfresco]]&lt;br /&gt;
*[[Backup and Recovery d'Alfresco]]&lt;br /&gt;
&lt;br /&gt;
=== Zimbra ===&lt;br /&gt;
*[[Què és Zimbra Collaboration Suite]]&lt;br /&gt;
*Zimbra Tour en Flash a http://www.zimbra.com/demos/zimbra_tour/&lt;br /&gt;
*Zimbra Hosted Free Trial: http://www.zimbra.com/products/hosted_demo.php&lt;br /&gt;
&lt;br /&gt;
===Orange HRM ===&lt;br /&gt;
*[[Documentació Orange]]&lt;br /&gt;
*[[Instal·lació Orange HRM]]&lt;br /&gt;
&lt;br /&gt;
===MantisBT: Gestió d'Incidències ===&lt;br /&gt;
*[[Instal·lació MantisBT]]&lt;br /&gt;
*[[Característiques MantisBT]]&lt;br /&gt;
*[[Instal·lació i configuració Mantisbalmes curs 2011-12 (producció)]]&lt;br /&gt;
&lt;br /&gt;
=== Software Nòmines Open Source ===&lt;br /&gt;
*[[Documentació Nòmines]]&lt;br /&gt;
&lt;br /&gt;
=== BulmaGés ===&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian]]&lt;br /&gt;
*[[Compilació de Bulmagés des del codi font]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 3a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Ubuntu 4a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 5a prova]]&lt;br /&gt;
&lt;br /&gt;
=== Wordpress ===&lt;br /&gt;
*[[Instal·lació i configuració d'un blog amb wordpress]]&lt;br /&gt;
*[[Hack WordPress]]&lt;br /&gt;
*[[eCommerce - carret de la compra]]&lt;br /&gt;
*[[Programació carret de la compra PayPal]]&lt;br /&gt;
*[[Configurar plugin de Twitter]]&lt;br /&gt;
*[[Canviar la imatge de la capçalera del Wordpress en funció de la categoria]]&lt;br /&gt;
&lt;br /&gt;
=== Moodle ===&lt;br /&gt;
*[[Instal·lació i configuració del Moodle]]&lt;br /&gt;
*[[Backup i Restore del Moodle]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 10-11]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 11-12]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 12-13]]&lt;br /&gt;
&lt;br /&gt;
=== Groupion ===&lt;br /&gt;
*[[Què és Groupion]]&lt;br /&gt;
*Edicions i Llicència Groupion: http://www.groupion.com/en/getgroupion/editions/&lt;br /&gt;
*[[Documentació Groupion]]&lt;br /&gt;
*[[Groupion: Instal·lació i Administració]]&lt;br /&gt;
&lt;br /&gt;
=== Asterisk ===&lt;br /&gt;
*[[Què és asterisk?]]&lt;br /&gt;
&lt;br /&gt;
===SIG-GIS: Sistemes d'Informació Geogràfica===&lt;br /&gt;
*[[gvSIG: Instal·lació i configuració]]&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
*[[Instal·lació Android SDK]]&lt;br /&gt;
*[[Documentació Android]]&lt;br /&gt;
*[[Utilitzar SQLite des de la Shell en Android]]&lt;br /&gt;
*[[Programant Android SDK]]&lt;br /&gt;
*[[Projecte: dictionary.xml]]&lt;br /&gt;
*[[HTC Dream de Movistar]]&lt;br /&gt;
*[[GMote per a control remot]]&lt;br /&gt;
*[[TBD Android]]&lt;br /&gt;
*[[Android: aplicacions útils]]&lt;br /&gt;
*[[Motorola Moto G]]&lt;br /&gt;
*[[Programació amb MIT App Inventor]]&lt;br /&gt;
&lt;br /&gt;
=== Disc de xarxa NDAS ===&lt;br /&gt;
*[[iomega Home Network Hard Drive 320GB]]&lt;br /&gt;
*[[iomega Home Network Hard Drive 500GB]] a l'institut&lt;br /&gt;
&lt;br /&gt;
===Subversion===&lt;br /&gt;
*[[Funcionament Subversion]]&lt;br /&gt;
&lt;br /&gt;
===FTP Server: vsftp===&lt;br /&gt;
*[[FTP Server: vsftp]]&lt;br /&gt;
*[[Client de FTP: gftp]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
*[[SSH]]&lt;br /&gt;
*[[Sessió SSH dels alumnes]]&lt;br /&gt;
===Virtual Box===&lt;br /&gt;
*[[Virtual Box en mode comanda: VBoxManage]]&lt;br /&gt;
===Docker, contenidors===&lt;br /&gt;
*[[Primers passos amb docker]]&lt;br /&gt;
*[[docker: instància de mysql server]]&lt;br /&gt;
*[[docker: PostgreSQL]]&lt;br /&gt;
*[[docker a DAM-M02]]&lt;br /&gt;
*[[Cas pràctic: dockeritzar una aplicació. Hauk]]&lt;br /&gt;
*[[Java amb Docker: HelloWorld]]&lt;br /&gt;
*[[docker: intel·ligència artificial - IOC]]&lt;br /&gt;
&lt;br /&gt;
===Remote Shell RSH===&lt;br /&gt;
*[[Remote Shell RSH]]&lt;br /&gt;
===Backup===&lt;br /&gt;
*[[Política de backup]]&lt;br /&gt;
*[[Backup del sistema]]&lt;br /&gt;
*[[backup_UbuntuServer.sh]]&lt;br /&gt;
*[[backup_DELL_Studio.sh]]&lt;br /&gt;
*[[backup_DELL_WXP.bat]]&lt;br /&gt;
*[[backup_LINKAT.sh]]&lt;br /&gt;
*[[backup_BBDD.bat]]&lt;br /&gt;
*[[Còpia de UbuntuServer a DVD]]&lt;br /&gt;
*[[Backup del servidor - oct 2011]]&lt;br /&gt;
*[[Backup del portàtil de producció al servidor]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de la línia de comandes===&lt;br /&gt;
*[[Enviar mail des de la línia de comandes]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de PHP===&lt;br /&gt;
*[[Enviar mail des de PHP: phpMailer]]&lt;br /&gt;
&lt;br /&gt;
===Postfix===&lt;br /&gt;
*Configuració bàsica del Postfix: http://www.postfix.org/BASIC_CONFIGURATION_README.html&lt;br /&gt;
*[[Configuració del postfix]] (inacabat)&lt;br /&gt;
*[[Configuració del postfix II]] (inacabat)&lt;br /&gt;
&lt;br /&gt;
===Classificació fotos===&lt;br /&gt;
*[[ImageMagick]]&lt;br /&gt;
*[[LinPHA]]&lt;br /&gt;
*[[Coppermine]]&lt;br /&gt;
*[[Pixtuff 3.0]]&lt;br /&gt;
*[[Arthropoda]]&lt;br /&gt;
*[[Flickr API]]&lt;br /&gt;
*Recuperar fotos d'una tarja SD o d'un USB: [[http://backinlinux.com/2013/06/11/recuperar-informacion-borrada-en-una-usb-o-disco-con-ubuntu/]]. Ha funcionat correctament.&lt;br /&gt;
&lt;br /&gt;
=== Món Linux ===&lt;br /&gt;
*Exàmen LPIC (wiki Sergi Tur): http://acacha.org/mediawiki/index.php/LPIC1_101&lt;br /&gt;
*revista digital: http://www.gacetatecnologica.com&lt;br /&gt;
*Linux Journal: http://www.linuxjournal.com/&lt;br /&gt;
*Linux Magazine: [http://www.linux-mag.com/ Linux Magazine]&lt;br /&gt;
*webs amigues: http://www.aplicacionesempresariales.com/&lt;br /&gt;
*Empreses que treballen amb Linux: &lt;br /&gt;
:http://libroblanco.com/cms/index.php/Search-dir.html&lt;br /&gt;
:http://www.catpl.org/catpl/empreses&lt;br /&gt;
* Llibre Blanc Smile: Introducció a l'Open Source: [[Imatge:Livre_Blanc_Smile_-_Introduction_à_l'open_source.pdf]]&lt;br /&gt;
* Video promocional Red Hat: Truth Happens: http://www.youtube.com/watch?v=ZtdnZNYN0MM&lt;br /&gt;
* Taula Rodona Linkat vs altres distribucions. Festa Ubuntu 9.04. [[Imatge:TaulaRodonaLinkat.pdf]]&lt;br /&gt;
* Programari lliure a l'escola. Projecte LINKAT. Festa Ubuntu 9.04. [[Imatge:Presentacio Terrassa 09.pdf]]&lt;br /&gt;
* Llibre ''Two bits'' (the cultural significance of free software). Cristopher M. Kelty. [[Imatge:Kelty-TwoBits.pdf]]&lt;br /&gt;
* Connexions (http://cnx.org/). Material educatiu en format lliure.&lt;br /&gt;
* Introducció a Linux (pdf):  [[Fitxer:UF1-Lx 1.pdf]] i [[Fitxer:UF1-Lx 2.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Jocs a Linux===&lt;br /&gt;
*Linux Game Database: http://www.lgdb.org&lt;br /&gt;
*[[Xiangqi-Chinese Chess: GMChess]]&lt;br /&gt;
&lt;br /&gt;
===webcams===&lt;br /&gt;
*[[webcams a Linux]]&lt;br /&gt;
*[[motion tracking - fiducial markers]]&lt;br /&gt;
*[[guvcview]]&lt;br /&gt;
&lt;br /&gt;
===Videos de l'escriptori===&lt;br /&gt;
*[[aplicatiu pyvnc2swf]]&lt;br /&gt;
*[[penjar videos al Youtube]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Fer vídeos del Youtube===&lt;br /&gt;
*teleprompter: http://www.cueprompter.com/&lt;br /&gt;
*[[DVD to AVI]] (Document per polir)&lt;br /&gt;
*[[Webcams a Linux]]&lt;br /&gt;
*[[Fotos i videos amb la Canon EOS 550D. Editor de video Openshot]]&lt;br /&gt;
*[[Tècniques de video]]&lt;br /&gt;
*screencast amb recordmydesktop (amb audio): [[Com_construir_un_MAME_Arcade#gravar_video_del_funcionament_jukebox.2FMAME]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Cremar un CD des de la línia de comandes===&lt;br /&gt;
*[[Cremar un CD des de la línia de comandes]]&lt;br /&gt;
===Ubuntu Server===&lt;br /&gt;
*[[Tips Ubuntu Server]]&lt;br /&gt;
*[[Gestor de finestres icewm]]&lt;br /&gt;
*[[OpenLDAP]]&lt;br /&gt;
===Fer un LiveCD===&lt;br /&gt;
*[[Fer un LiveCD 1]] (no ha funcionat)&lt;br /&gt;
*[[Fer un LiveCD 2]] (remastersys)&lt;br /&gt;
*[[Fer un LiveCD 3]] (remastersys de forma manual)&lt;br /&gt;
===Tips de seguretat===&lt;br /&gt;
*[[Obrir el SSH des d'una pàgina web]]&lt;br /&gt;
*[[xifratge simètric i asimètric]]&lt;br /&gt;
&lt;br /&gt;
===Projecte PHP exemplar===&lt;br /&gt;
* [[Projecte PHP exemplar: Introducció i objectius]]&lt;br /&gt;
* [[Debug: log4PHP]]&lt;br /&gt;
* [[cron]]&lt;br /&gt;
* [[localització (suport multiidioma)]]&lt;br /&gt;
&lt;br /&gt;
===ALTARM - Audit Logical Transactions And Recover Mistakes===&lt;br /&gt;
* [[ALTARM: Windows + Postgres + VB + ASP]]&lt;br /&gt;
&lt;br /&gt;
===Prendre notes amb Tomboy===&lt;br /&gt;
*[[Hacking Tomboy]]&lt;br /&gt;
===wiimote. Projectes amb la Wii===&lt;br /&gt;
*[[LLibreria WiiRemoteJ]]&lt;br /&gt;
*[[Utilitzar wiimote com a ratolí]]&lt;br /&gt;
*[[Pissarra digital]]&lt;br /&gt;
*[[Llibreria WiiC]]&lt;br /&gt;
&lt;br /&gt;
===Karaoke===&lt;br /&gt;
*[[Eliminar la part vocal d'una cançó]]&lt;br /&gt;
*[[PyKaraoke]]&lt;br /&gt;
&lt;br /&gt;
===Screenlets===&lt;br /&gt;
*[[Screenlets]]&lt;br /&gt;
&lt;br /&gt;
===Jocs Infantils===&lt;br /&gt;
*[[Jocs Infantils]]&lt;br /&gt;
===Taller===&lt;br /&gt;
*[[Fast and Easy Can Stirling Engine Tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Impressió===&lt;br /&gt;
*[[Instal·lació HP Deskjet F2480]]&lt;br /&gt;
&lt;br /&gt;
===Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals===&lt;br /&gt;
*[[Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals: Remastersys]]&lt;br /&gt;
&lt;br /&gt;
=== Problemes ===&lt;br /&gt;
*[[joan is not in the sudoers file]]&lt;br /&gt;
*[[problema restore mysql]]&lt;br /&gt;
*[[no em connecto al postgres des d'un ordinador de la xarxa local]]&lt;br /&gt;
*[[deshabilitar el touchpad mentre escrius]]&lt;br /&gt;
*[[el cron no executa el script]]&lt;br /&gt;
&lt;br /&gt;
===GIMP, tauleta gràfica Wacom, Animació 2D/3D, gràfics vectorials, retoc fotogràfic===&lt;br /&gt;
*[[GIMP i tauleta gràfica Wacom]]&lt;br /&gt;
*[[Programació GIMP]]&lt;br /&gt;
*[[Plugins GIMP]]&lt;br /&gt;
Amb Synfig Studio també es pot utilitzar la Wacom: [[Synfig_Studio:_Animació_2D#Creating_Shapes]]&lt;br /&gt;
*[[Synfig Studio: Animació 2D]]&lt;br /&gt;
*[[Blender: Animació 2D]] (modelització 3D)&lt;br /&gt;
*Inkscape: gràfics vectorials. Format SVG (Scalable Vector Graphics): http://inkscape.org/&lt;br /&gt;
*[[freeCAD]]&lt;br /&gt;
*[[Retoc fotogràfic tipus plugins d'Instagram]]&lt;br /&gt;
&lt;br /&gt;
===LibreCAD===&lt;br /&gt;
*[[LibreCAD]]. Free Open Source CAD software&lt;br /&gt;
===CNC===&lt;br /&gt;
Aquí concentro tots els enllaços relacionats amb '''CNC''':&lt;br /&gt;
*[[inkscape]] per a CNC. Per generar g-code i utilitzar Linuxcnc: https://www.youtube.com/watch?v=o7Mfi8ZMHWc&lt;br /&gt;
*[[HeeksCAD]]. Necessito HeeksCAD per obtenir el g-code&lt;br /&gt;
*[[LinuxCNC (EMC2)]]. Alternativa per a Linux&lt;br /&gt;
*[[dxf2gcode]]&lt;br /&gt;
*[[dxf2G]] (línia de comandes)&lt;br /&gt;
*[[utilitat grecode]]&lt;br /&gt;
*[[Màquines CNC]]&lt;br /&gt;
*[[Tutorial G-Code]]&lt;br /&gt;
*[[Fer_plaques_PCB_amb_màquina_CNC | fer plaques PCB amb màquina CNC (drilling and milling) ]]&lt;br /&gt;
*[[Construir_una_màquina_CNC | Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina_CNC_3040T | Màquina CNC 3040T]] (compra de bits/broques)&lt;br /&gt;
*[[Utiltizar_la_màquina_CNC | Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Projectes CNC. Documentació i know-how]]&lt;br /&gt;
*[[script CNC stroke]]&lt;br /&gt;
*[[script CNC hollow]]&lt;br /&gt;
*[[Halftone. Script drillpic2]]&lt;br /&gt;
*[[Càlculs CNC. Speeds and Feeds]]&lt;br /&gt;
*[[Màquina de tall làser (Fàbrica del Sol)]]&lt;br /&gt;
&lt;br /&gt;
===Màquina de Tall làser===&lt;br /&gt;
*[[Màquina de Tall làser. Referències]]&lt;br /&gt;
*[[script cncboxparam]] (projecte ''Maria 12 anys'', night light)&lt;br /&gt;
&lt;br /&gt;
===Tallar vinils===&lt;br /&gt;
*[[Silhouette Cameo]] (abril 2018)&lt;br /&gt;
&lt;br /&gt;
===FreeCAD, 3D printing===&lt;br /&gt;
*[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
===gnuplot===&lt;br /&gt;
*[[gnuplot]]&lt;br /&gt;
===Octave (equivalent a Matlab)===&lt;br /&gt;
*[[octave]] (A high-level interactive language for numerical computations)&lt;br /&gt;
&lt;br /&gt;
===Documents al núvol===&lt;br /&gt;
*[[Documents al núvol: Dropbox i Ubuntu One]]&lt;br /&gt;
*[[Documents al núvol: Copy (alternativa al Dropbox)]]&lt;br /&gt;
&lt;br /&gt;
===Servidor Pentium IV 3GHz===&lt;br /&gt;
*[[Servidor Pentium IV 3GHz]] (octubre 2011)&lt;br /&gt;
===Portàtil HP Pavilion g series (institut)===&lt;br /&gt;
*[[Portàtil HP Pavilion g series (institut)]]&lt;br /&gt;
&lt;br /&gt;
===Reconeixement de veu===&lt;br /&gt;
*[[CMU Sphinx]]&lt;br /&gt;
&lt;br /&gt;
===aMule===&lt;br /&gt;
*[[aMule remot]]&lt;br /&gt;
===cosetes===&lt;br /&gt;
*Nautilus: que la barra de direccions sigui text. http://www.taringa.net/posts/linux/5429141/Cambia-la-barra-de-direcciones-de-Nautilus-a-texto.html&lt;br /&gt;
*[[Llibres electrònics i l'editor Sublime Text2. Convertir pdf a txt]]&lt;br /&gt;
&lt;br /&gt;
===Veure la BBC amb una connexió VPN===&lt;br /&gt;
*[[Veure la BBC amb una connexió VPN]]&lt;br /&gt;
&lt;br /&gt;
= HowTo Linkat =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Primers passos]]&lt;br /&gt;
=== Materials de formació ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/dvdformacio/materials/td111/ Curs td111 de LINKAT]&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració Apache]]&lt;br /&gt;
*[[Lloc virtual per a un alumne]]&lt;br /&gt;
&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Automatitzar les còpies de seguretat]]&lt;br /&gt;
*[[Atacar des de la xarxa]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració del Postgres]]&lt;br /&gt;
&lt;br /&gt;
*[[Instal·lació PgAdmin]]&lt;br /&gt;
&lt;br /&gt;
=== Java-JDK ===&lt;br /&gt;
*[[Desinstal·lació total del java: JDK, JRE]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK II]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació i configuració del Tomcat]]&lt;br /&gt;
=== Apache Ant ===&lt;br /&gt;
*[[Instal·lació i configuració del Apache Ant]]&lt;br /&gt;
=== OpenBravo ===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo]]&lt;br /&gt;
*[[Traducció al castellà. Problemes]]&lt;br /&gt;
=== OpenBravo POS a la LINKAT===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo POS a la LINKAT]]&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració del Samba]]&lt;br /&gt;
=== MediaWiki ===&lt;br /&gt;
*[[Instal·lació i configuració d'una mediawiki]]&lt;br /&gt;
=== pendrive al linkat ===&lt;br /&gt;
*[[pendrive al linkat]]&lt;br /&gt;
=== Aplicacions Jaume Balmes ===&lt;br /&gt;
*[[Aplicació assistència]]&lt;br /&gt;
*[[jaumebalmes.net - Joomla]]&lt;br /&gt;
*[[Servidor virtual (Moodle i altres). Manteniment]]&lt;br /&gt;
&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Instal·lació Oracle a la LINKAT 3]]&lt;br /&gt;
&lt;br /&gt;
= Curs Administració Linux ICE-UPC =&lt;br /&gt;
*[[Presentació]]&lt;br /&gt;
*[[Sessió 1]]&lt;br /&gt;
*[[Sessió 2]]&lt;br /&gt;
*[[Sessió 3. Compilació del kernel]]&lt;br /&gt;
*[[Sessió 4]]&lt;br /&gt;
*[[Sessió 5. Gestió Remota, SSH]]&lt;br /&gt;
*[[Sessió 6]]&lt;br /&gt;
*[[Sessió 7]]&lt;br /&gt;
*[[Sessió 8]]&lt;br /&gt;
*[[Resum configuració xarxa]]&lt;br /&gt;
&lt;br /&gt;
= Curs Programació Linux ICE-UPC =&lt;br /&gt;
*[[Sessió 1 curs programació linux]]&lt;br /&gt;
*[[Sessió 2 curs programació linux]]&lt;br /&gt;
*[[Sessió 3 curs programació linux]]&lt;br /&gt;
*[[Sessió 4 curs programació linux]]&lt;br /&gt;
*[[Sessió 5 curs programació linux]]&lt;br /&gt;
*[[Sessió 6 curs programació linux]]&lt;br /&gt;
*[[Sessió 7 curs programació linux]]&lt;br /&gt;
*[[Sessió 8 curs programació linux]]&lt;br /&gt;
*[[Sessió 9 curs programació linux]]&lt;br /&gt;
*[[Sessió 10 curs programació linux]]&lt;br /&gt;
&lt;br /&gt;
= Projecte Langtrainer =&lt;br /&gt;
*[[Langtrainer: Introducció]]&lt;br /&gt;
*[[Langtrainer: Base de dades]]&lt;br /&gt;
*[[Langtrainer: Open Flash Chart-OFC]]&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Langtrainer: ToDo]]&lt;br /&gt;
*[[Langtrainer: Control de Qualitat, causístiques]]&lt;br /&gt;
*[[Langtrainer: nova instal·lació pas a pas]]&lt;br /&gt;
*[[Speech Recognition]]&lt;br /&gt;
*[[Vocabulari anglès empresarial]]&lt;br /&gt;
*[[Curs: Eines i estratègies metodològiques per a impartir anglès en els cicles formatius d'FP]]&lt;br /&gt;
=TTS i STT (speech recognition, language models, etc)=&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Instal·lació de sphinxbase i pocketsphinx a la RPi (proves)]] (Magic Mirror)&lt;br /&gt;
*[[TTS: Hora Catalana]]&lt;br /&gt;
&lt;br /&gt;
=Programació Web=&lt;br /&gt;
==PHP==&lt;br /&gt;
*[[Open Flash Chart]]&lt;br /&gt;
*[[executar PHP des del cron]]&lt;br /&gt;
*[[PHP i autenticació LDAP]]&lt;br /&gt;
*[[Framework Laravel]] (maig 2020)&lt;br /&gt;
&lt;br /&gt;
==AJAX==&lt;br /&gt;
*[[Història d'un formulari]]&lt;br /&gt;
&lt;br /&gt;
=Programació Java=&lt;br /&gt;
*Programació de videojocs: Space Invaders amb Java:&lt;br /&gt;
**http://balusoft.wordpress.com/2010/09/26/creando-un-space-invaders-con-java/&lt;br /&gt;
**http://dl.dropbox.com/u/9043876/Curso%20de%20Space%20Invaders/JAVA-INVADERS-00.html&lt;br /&gt;
*[[Shared Libraries amb Java]]&lt;br /&gt;
*[[Programació de sockets amb Java]]&lt;br /&gt;
&lt;br /&gt;
=Programació en C/C++=&lt;br /&gt;
*[[Llibreria EasyBMP]]&lt;br /&gt;
*[[Programació OpenGL]]&lt;br /&gt;
*[[OpenGL]] (i SDL)&lt;br /&gt;
*[[SDL sense servidor X. Raspberry Pi]]&lt;br /&gt;
*[[Tutorial de C++. El diario de Peter Class]] TBD (i altres tutorials)&lt;br /&gt;
*[[Programación en C sobre Linux]] TBD&lt;br /&gt;
*[[Llibreria libpg: accedir a PostgreSQL]]&lt;br /&gt;
*[[wiiuse - The Wiimote C Library]]&lt;br /&gt;
*[[Eclipse CDT]] (IDE per programar en C++ basat en Eclipse&lt;br /&gt;
*[[Anjuta]] IDE C/C++. Mirar també el IDE '''MonoDevelop'''&lt;br /&gt;
*[[llibreries gràfiques GTK]] (per fer finestres..., aplicacions d'escriptori)&lt;br /&gt;
*[[Videojocs amb Allegro]]&lt;br /&gt;
*[[diagrames de flux UML: dia]]&lt;br /&gt;
*[[Writing device drivers in Linux: A brief tutorial]]&lt;br /&gt;
*[[L'API de C de MySQL]]&lt;br /&gt;
*[[Estructures de dades amb C++]]&lt;br /&gt;
*[[parsejar fitxers XML]]&lt;br /&gt;
*[[Videojocs amb C++ i SDL]]&lt;br /&gt;
*[[STK Synthesis ToolKit in C++]]&lt;br /&gt;
*[[Coses útils C++]]&lt;br /&gt;
*[[Xlib programming]] Programació del servidor X&lt;br /&gt;
*[[Fast Fourier Transform: FFTW]]&lt;br /&gt;
*[[Fils/threads amb C++]]&lt;br /&gt;
*[[passar paràmetres per referència amb C]] (amb C++ és una mica diferent)&lt;br /&gt;
*[[Accedir a dispositius USB: llibreria libusb]]&lt;br /&gt;
*[[libxl: llegir i escriure fitxers Excel]]&lt;br /&gt;
*[[Expressions regulars amb C]]&lt;br /&gt;
*[[Programació ncurses]] (colors a la consola i controlar la posició del que escric a la consola)&lt;br /&gt;
*[[Programació dels microcontroladors AVR: avr-gcc]]&lt;br /&gt;
*[[Classe Cotxe, amb C a pèl i amb C++]]&lt;br /&gt;
*[[ID3 Tag Library]] (llegir els tags que hi ha en un fitxer mp3)&lt;br /&gt;
*[[Parser de JSON amb C i C++]]&lt;br /&gt;
*[[Aplicació de consola per capturar events del teclat amb C++ (non-blocking)]]&lt;br /&gt;
*[[POO en C++. Exemple Author-Book. Un objecte té com a data membre un altre objecte]]&lt;br /&gt;
*[[OpenCV a la RPi]] (amb webcams USB i amb la RasPiCam)&lt;br /&gt;
*[[OpenCV a Ubuntu 16.04]]&lt;br /&gt;
*[[OpenCV a Ubuntu 18.04]] (gener 2020)&lt;br /&gt;
*[[OpenCV: aplicatiu recta perfecte, cercle perfecte]] (gener 2020)&lt;br /&gt;
*[[Mètodes o esquemes algorítmics]]&lt;br /&gt;
*[[SDL mínim. Diferents tècniques]]&lt;br /&gt;
*[[Llibreria raylib (videojocs) a la Raspberry Pi]]&lt;br /&gt;
*[[Curs edX: Animation and CGI Motion (ColumbiaX: CSMM.104x)]] (Llibreria Eigen d'Àlgebra Lineal)&lt;br /&gt;
&lt;br /&gt;
=Programació Python=&lt;br /&gt;
*[[Pygame. Programació videojocs]]&lt;br /&gt;
*[[Mètodes numèrics. numpy, scipy, sympy]]&lt;br /&gt;
*[[Python Virtual Environments]]&lt;br /&gt;
*[[python3-tk: GUI amb tinker]]&lt;br /&gt;
*[[Bot de Twitter amb Python i Tweepy]] (setembre 2021)&lt;br /&gt;
&lt;br /&gt;
=Machine Learning, Deep Learning, AI=&lt;br /&gt;
*[[TensorFlow. Python]] (Deep Learning, DL)&lt;br /&gt;
*[[RPi i TensorFlow. Object detection and classification]]&lt;br /&gt;
*[[RPi. Real-time object tracking with TensorFlow]]&lt;br /&gt;
&lt;br /&gt;
=Programació videojocs amb Unity3D=&lt;br /&gt;
*[[Programació videojocs amb Unity3D]]&lt;br /&gt;
=Github=&lt;br /&gt;
*[[Github pràctic: control de versions]]&lt;br /&gt;
*[[Github pages]]&lt;br /&gt;
&lt;br /&gt;
=Node.js=&lt;br /&gt;
*[[Introducció a Node.js]]&lt;br /&gt;
*[[Node.js: Mòduls d'àudio]]&lt;br /&gt;
*[[Node.js: socket.io]]&lt;br /&gt;
&lt;br /&gt;
=Frameworks i llibreries de Javascript=&lt;br /&gt;
*[[React: A JavaScript library for building user interfaces]] (març 2020)&lt;br /&gt;
*[[ReactJS. Curs EdX. Introduction to ReactJS. Microsoft: DEV281x]]&lt;br /&gt;
*[[React Native]] (programació per a Android) (abril 2020)&lt;br /&gt;
*[[Desplegar un projecte web amb Express i Heroku]]&lt;br /&gt;
*[[Aplicació Reactjs a través del servidor web Express]]&lt;br /&gt;
*[[React CRUD tutorial]]&lt;br /&gt;
*[[App mòbil amb React Native: arbres singulars de Barcelona]] (abril-maig 2020, 2022)&lt;br /&gt;
*[[App mòbil amb React Native: Android Studio, mòbil amb USB, emulador]] (ReactNative sense Expo)&lt;br /&gt;
*[[React Native i bluetooth]] (ReactNative sense Expo)&lt;br /&gt;
*[[Llibreria three.js]] (webgl)&lt;br /&gt;
*[[Rest-API-Express-MongoDB]]&lt;br /&gt;
&lt;br /&gt;
=Google Maps=&lt;br /&gt;
*[[Google Maps JavaScript API v3]]&lt;br /&gt;
&lt;br /&gt;
=OpenStreetMap=&lt;br /&gt;
*[[OpenStreetMap - OSM]] (octubre 2019)&lt;br /&gt;
*[[Arbres Monumentals de Catalunya (programació OSM)]] (octubre 2019)&lt;br /&gt;
*[[Ancoratges de bicicleta a Barcelona]] (OSM) (oct 2019)&lt;br /&gt;
*[[opendata-barcelona]] (OSM)&lt;br /&gt;
*[[Traveling Salesman problem i arbres singulars de Barcelona]]&lt;br /&gt;
*[[Importació dels dòlmens de Catalunya]]&lt;br /&gt;
*[[Tiles Server. Renderització]]&lt;br /&gt;
*[[Esglésies romàniques de Catalunya]]&lt;br /&gt;
*[[Fronteres i límits administratius. GeoJSON. Mapes coroplètics]]&lt;br /&gt;
*[[Mapes medievals, mapes ficticis, mapes de fantasia, jocs basats en OSM]]&lt;br /&gt;
*[[Fusionar GeoJSON]]&lt;br /&gt;
*[[Openlayers: ol package. Exemple Casa de Papel]] (Casa de Papel, rutes BTT Cap de Creus)&lt;br /&gt;
*[[Openlayers amb ReactJS]]&lt;br /&gt;
*[[Exemples Openlayers (ol package)]]&lt;br /&gt;
*[[Projecte ProgessiveMaps]] (TBD)&lt;br /&gt;
*[[Reactnative, geolocation]] (programació Android)&lt;br /&gt;
*[[Mapes del ICGC]] (Institut Cartogràfic)&lt;br /&gt;
*[[Mapes de Mapbox]]&lt;br /&gt;
*[[tag route=railway a OSM. Línies de Ferrocarril catalanes]]&lt;br /&gt;
*[[Cales de Menorca]] i altres exemples (tossa, tossal)&lt;br /&gt;
*[[30DayMapChallenge]]&lt;br /&gt;
*Elevation API per generar mapes en relleu: https://elevationapi.com/&lt;br /&gt;
*[[Llibreria procedural-gl]] (mapes 3D tipus Google Earth i Relieve)&lt;br /&gt;
*[[Curs GDS (Dani Arribas)]]&lt;br /&gt;
*[[Catalunya Màgica]]&lt;br /&gt;
*[[Topònims Quintana]]&lt;br /&gt;
*[[Rutes GPS Joanillo]]&lt;br /&gt;
*[[Rutes BTT Joanillo]] (visió global)&lt;br /&gt;
*[[Municipis de Catalunya]]&lt;br /&gt;
*[[La Palma Volcano Resort]]&lt;br /&gt;
*[[CatGeoQuest]] (TBD)&lt;br /&gt;
*[[Montseny]] (TBD)&lt;br /&gt;
*[[Tracking BTT]] (TBD, eliminar)&lt;br /&gt;
*[[POLS: Pumpkin Outdoors Location Sharing]]&lt;br /&gt;
&lt;br /&gt;
=Web Services, APIs=&lt;br /&gt;
*[[API de openweathermap.org, thingful.net (Internet of Things)]]&lt;br /&gt;
*[[API de Strava]] (març 2021)&lt;br /&gt;
&lt;br /&gt;
=Web Data Extraction=&lt;br /&gt;
*[[Web Data Extraction]]&lt;br /&gt;
*[[Firefox add-on programming]] (Executar un bash script des del Firefox)&lt;br /&gt;
*jmining&lt;br /&gt;
=AWS: Amazon Web Services. Cloud=&lt;br /&gt;
*[[AWS: Amazon Web Services. Cloud]]&lt;br /&gt;
&lt;br /&gt;
=Informàtica musical=&lt;br /&gt;
[[Imatge:Ustudioware.jpg|thumbnail]]&lt;br /&gt;
*[[Fil de la història]]&lt;br /&gt;
*[[Windows: feines fetes]]. Midishare, JMusic, Invaders,...&lt;br /&gt;
*[[Ubuntu Studio]]&lt;br /&gt;
*[[ALSA: Advanced Linux Sound Architecture]]&lt;br /&gt;
*[[JACK: Audio Connection Kit]]&lt;br /&gt;
*[[kernel RT i variants]]&lt;br /&gt;
*[[Midishare]]&lt;br /&gt;
*[[Edirol UA-25 EX]]&lt;br /&gt;
*[[Terratec DMX 6FIRE 24/96]]&lt;br /&gt;
*[[Yamaha WX-5 Wind Controller]]&lt;br /&gt;
*[[Alesis DM5]]&lt;br /&gt;
*[[Drum Kit]]&lt;br /&gt;
*[[Foot Controllers]]&lt;br /&gt;
*[[Sintetitzador Roland JV-2080]]&lt;br /&gt;
*[[Sintetitzador Roland JV-1010]]&lt;br /&gt;
*[[Sintetitzador MeeBlip]]&lt;br /&gt;
*[[M-Audio Axiom 25]]&lt;br /&gt;
*[[M-AUDIO MIDAIR]] Midi Wireless System&lt;br /&gt;
*[[Electrònica MIDI]]&lt;br /&gt;
*[[Projectes d'Informàtica Musical]]&lt;br /&gt;
*[[Enllaços Informàtica Musical]]&lt;br /&gt;
*[[Hardware Audio]]&lt;br /&gt;
*[[Altres distribucions Linux orientades a audio]]&lt;br /&gt;
*[[MIDI Clock Sync (How machines stay in sync)]]&lt;br /&gt;
*Projecte 50 Ways to Play Una Plata d'Enciam: [[Llistats_de_maneres_de_tocar_Una_Plata_d'Enciam]]&lt;br /&gt;
*[[OSC: Open Sound Control]]&lt;br /&gt;
*[[Síntesi d'Audio]]&lt;br /&gt;
*[[fer vídeos per al Youtube II]]&lt;br /&gt;
*[[Gravar les veus. Cercant la qualitat]]&lt;br /&gt;
*[[Fitxers MIDI (SMF). Format]]&lt;br /&gt;
*[[Cercant el so de saxofon]]&lt;br /&gt;
*[[Programació/APIs amb C/C++]]&lt;br /&gt;
*[[Música algorísmica]]&lt;br /&gt;
*[[EWI-USB amb la Raspberry Pi]]&lt;br /&gt;
*[[Mopidy-MPD-mpc]]&lt;br /&gt;
&lt;br /&gt;
=Electrònica=&lt;br /&gt;
[[Fitxer:13317017449743365.png|50px]]&lt;br /&gt;
*[[Aplicació inventari.inventari.joanillo.org]]&lt;br /&gt;
*[[Base de dades electrònica]]: http://wikijoan.dyndns.org/electronica/llistar_recursos.php&lt;br /&gt;
*[[enllaços electrònica]]&lt;br /&gt;
*[[Eagle CadSoft]]&lt;br /&gt;
*[[KiCAD i pcb2gcode]]&lt;br /&gt;
*[[fer plaques PCB]]&lt;br /&gt;
*[[fer plaques PCB amb màquina CNC]] (drilling and milling)&lt;br /&gt;
*[[GEDA]]: GEDA: GPL'd suite and toolkit of Electronic Design Automation tools&lt;br /&gt;
*[[Projectes d'Electrònica]]&lt;br /&gt;
*[[Arduino]]&lt;br /&gt;
*[[Arduino: programació dirigida per events]]&lt;br /&gt;
*[[Música amb Arduino]]&lt;br /&gt;
*[[Arduino i HTC Dream]]&lt;br /&gt;
*[[Paperduino]]&lt;br /&gt;
*[[Robot Asuro]]&lt;br /&gt;
*[[Robot Zowi de BQ]]&lt;br /&gt;
*[[cartrobot: robot de cartró amb materials reciclats]]&lt;br /&gt;
*[[Arduino i driver USB]]&lt;br /&gt;
*[[Raspberry Pi]]&lt;br /&gt;
*[[Raspberry Pi: Internet Ràdio]]&lt;br /&gt;
*[[Raspberry Pi. Sensor de temperatura. Domòtica]]&lt;br /&gt;
*[[Raspberry Pi. Programació dels pins GPIO i exapansió dels pins amb I2C. Amb C i C++]]&lt;br /&gt;
*[[Cacera fotogràfica amb Raspberry Pi]]&lt;br /&gt;
*[[fonts d'alimentació, reflexions]]&lt;br /&gt;
*[[Tècniques soldadura/desoldadura]]&lt;br /&gt;
*[[Oscil.loscopi Hameg 203-7]]&lt;br /&gt;
*[[Generador de funcions Promax GF-232]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[Recreatives, Arcade, RetroPlaneta.com]]&lt;br /&gt;
*[[Sistema d'amplificació autònom]]&lt;br /&gt;
*[[Curs MIT: Circuits and Electronics (6.002x)]]&lt;br /&gt;
*[[Simulador de circuits: ngspice, gschem, xcircuit]]&lt;br /&gt;
*[[Simulador de circuits: LTSpice IV]]&lt;br /&gt;
*[[Beagle Board]]&lt;br /&gt;
*[[Pràctiques d'electrònica]]&lt;br /&gt;
*[[Insectes robot]]&lt;br /&gt;
*[[Dispositius USB amb V-USB i microcontroladors AVR]]&lt;br /&gt;
*[[Pinball/milloncete electromecànic]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[FPGAwars]]&lt;br /&gt;
*[[Programador EEPROM amb Arduino]] (programador paral.lel)&lt;br /&gt;
*[[Home-Built Z-80 Computer]]&lt;br /&gt;
*[[Caixa niu, Pep Gener]]&lt;br /&gt;
*[[Makerbuino]]&lt;br /&gt;
*[[Capacitive touch switch]]&lt;br /&gt;
*[[Audiobook]] (TBD)&lt;br /&gt;
*[[Speedometer d'agulla]]&lt;br /&gt;
*[[Rotary encoder]]&lt;br /&gt;
*[[Rètol lluminós amb temporitzador. Regal Maria]]&lt;br /&gt;
*[[Targetes de regal musicals - greeting cards]] (audio recorder module chip)&lt;br /&gt;
*[[Levitació magnètica. Kit]]&lt;br /&gt;
*[[Hard drive motors (brushless, BLDC) using Arduino]]&lt;br /&gt;
*[[Ràdio enllaç Morse]]&lt;br /&gt;
&lt;br /&gt;
=IoT, Internet of Things=&lt;br /&gt;
*[[IoT, Raspberry Pi, RESTful web services]]&lt;br /&gt;
*[[IoT, cursos i apunts]]&lt;br /&gt;
*[[Pràctica IoT: NodeMCU i sensor BME280. Plataforma Thingspeak]]&lt;br /&gt;
*[[NodeRED]]&lt;br /&gt;
*[[Mosquitto MQTT Broker a la RPi]]&lt;br /&gt;
*[[Minigateway LORA d'un canal]]&lt;br /&gt;
*[[Gateway LORA TTN Cat]]&lt;br /&gt;
*[[Node TTN amb TTGO]]&lt;br /&gt;
*[[Node autònom amb alimentació solar, antena DIY, Arduino Pro Micro i transceiver RFM95]]&lt;br /&gt;
*[[Caseta del Pere]]&lt;br /&gt;
&lt;br /&gt;
=Mecànica i bricolatge=&lt;br /&gt;
*[[Funcionament del volant. Wheel steering system]]&lt;br /&gt;
*[[Ensabatillar el saxofon]]&lt;br /&gt;
*[[Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina CNC 3040T]]&lt;br /&gt;
*[[Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Torn DIY (Lathe)]]&lt;br /&gt;
*[[Juego de machos y terrajas]]&lt;br /&gt;
*[[Solenoides]]&lt;br /&gt;
*PCB Holder: http://makerplane.org/?p=1311&lt;br /&gt;
*[[Proveïdors: metall, fusta, etc]]&lt;br /&gt;
*[[Fabricació de molles]]&lt;br /&gt;
*[[Treballar el vidre]]&lt;br /&gt;
*[[Disseny de coffee tables. Idees]]&lt;br /&gt;
*[[Trucos fusteria]]&lt;br /&gt;
*[[Bernissar i pulir la fusta]]&lt;br /&gt;
*[[Màquines i mecanismes]]. Marble machines, kinetic sculpture, perpetual motion, goldberg machines, mecanismes d'escapament, etc.&lt;br /&gt;
*[[Màquina de núvols de sucre]]&lt;br /&gt;
*[[Barco de ràdio control. RC Boat]]&lt;br /&gt;
*[[Idea Hallmark Happy Tappers]] (TBD)&lt;br /&gt;
*[[Cúpules de Leonardo da Vinci]]&lt;br /&gt;
*[[Mordassa per fer marcs]]&lt;br /&gt;
*PCB Holder (TBD)&lt;br /&gt;
*[[Segellar cantons de conglomerat i MDF]]&lt;br /&gt;
*[[Marble Climbing Machine with cardboard]] (regal pel pere, juny 2018)&lt;br /&gt;
&lt;br /&gt;
=Energia solar=&lt;br /&gt;
*[[Curs de la universitat de Delft: DelET.3034TU Solar Energy]]&lt;br /&gt;
*[[Aspectes pràctics instal·lació solar fotovoltaica]]&lt;br /&gt;
&lt;br /&gt;
=Projectes de video=&lt;br /&gt;
*[[Projectes de video]]&lt;br /&gt;
*[[monòlegs]]&lt;br /&gt;
*[[Pyramid hologram]]&lt;br /&gt;
&lt;br /&gt;
=Altres Projectes=&lt;br /&gt;
*[[Conversa amb robot. Combinació TTS i reconeixement de veu]]&lt;br /&gt;
&lt;br /&gt;
=TAMIE=&lt;br /&gt;
*[[TAMIE: Tecnologies Avançades per al Muntatge d'Instal·lacions i Exposicions]]&lt;br /&gt;
&lt;br /&gt;
=50 Ways to Play Una Plata d'Enciam=&lt;br /&gt;
*50 Ways... al blog: [http://www.joanillo.org/?cat=13 http://www.joanillo.org/?cat=13]&lt;br /&gt;
*[[Introducció al projecte 50 Ways to Play Una Plata d'Enciam]]&lt;br /&gt;
*[[fitxers lilypond Una Plata d'Enciam]]&lt;br /&gt;
*[[llistats de maneres de tocar Una Plata d'Enciam]]&lt;br /&gt;
&lt;br /&gt;
=Convocatoria VIDA de la Fundación Telefónica=&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 12.0]]&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 13.0]]&lt;br /&gt;
&lt;br /&gt;
=5 maneres de calcular g (5_ways_2_g)=&lt;br /&gt;
*[[5_ways_2_g]]&lt;br /&gt;
=Twitter robot=&lt;br /&gt;
*[[Twitter API]]&lt;br /&gt;
*[[Twitter robot]]&lt;br /&gt;
&lt;br /&gt;
=Pràctiques de Física amb arduino=&lt;br /&gt;
*[[Idees Pràctiques de Física amb arduino]]&lt;br /&gt;
&lt;br /&gt;
=Manualitats=&lt;br /&gt;
*[[Cartró pedra, Paper Maché]]&lt;br /&gt;
*[[Transfer a fusta]]&lt;br /&gt;
&lt;br /&gt;
=Magical Dolls=&lt;br /&gt;
*[[Idees Magical Dolls]]&lt;br /&gt;
&lt;br /&gt;
=Obres d'art, exposicions, electronic artwork=&lt;br /&gt;
*[[Obres d'art, exposicions, electronic artwork]]&lt;br /&gt;
&lt;br /&gt;
= ToDo =&lt;br /&gt;
*[[ToDo]]&lt;br /&gt;
&lt;br /&gt;
= Altres =&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ How To Geek Ubuntu]&lt;br /&gt;
*[[Aircrack]]&lt;br /&gt;
*[[Configuració router Local]]&lt;br /&gt;
*[[Tutorial Bash]]&lt;br /&gt;
*[[The Computational Beauty of Nature]]&lt;br /&gt;
*[[Notes per a la compra d'un ordinador]]&lt;br /&gt;
*[[Notes per a la compra de hardware a Thomann]]&lt;br /&gt;
*[[ZX Spectrum]]&lt;br /&gt;
*[[LATEX]] (novembre 2018, novembre 2019, maig 2021)&lt;br /&gt;
*[[Portàtil Chuwi Minibook X]], novembre 2024&lt;br /&gt;
&lt;br /&gt;
=Eines per a l'aprenentatge d'idiomes=&lt;br /&gt;
*[[Diccionaris i traductors en consola]]&lt;br /&gt;
*[[Entrenadors de Vocabulari]]&lt;br /&gt;
*[[Entrenador de Vocabulari: LANGUAGE TRAINER (LANGTRAINER)]]&lt;br /&gt;
&lt;br /&gt;
=Artròpodes i Insectes=&lt;br /&gt;
*Artròpodes i Insectes (TBD)&lt;br /&gt;
&lt;br /&gt;
=Màquina AMD Ryzen 7 5800X RTX 5060 Ti=&lt;br /&gt;
*[[Màquina AMD Ryzen 7 5800X RTX 5060 Ti]]&lt;br /&gt;
*[[Ollama: Models locals LLM]]&lt;br /&gt;
&lt;br /&gt;
=Tasques PLN i Tecnologies del Llenguatge=&lt;br /&gt;
* [[STT: Transcripció àudio català (i castellà)]]&lt;br /&gt;
* [[Traducció castellà-català]]&lt;br /&gt;
* [[TTS: Síntesi de veu]]&lt;br /&gt;
* [[Clonació de veu]]&lt;br /&gt;
&lt;br /&gt;
=Treball Final de Màster (TFM) Màster Tecnologies del Llenguatge=&lt;br /&gt;
* [[RAG. Flux de treball]]&lt;br /&gt;
&lt;br /&gt;
Anirem analitzant per parts cadascun dels components d'un RAG&lt;br /&gt;
* [[RAG: recol·lecció de documents]]&lt;br /&gt;
* [[RAG: split/chunking]] (TODO)&lt;br /&gt;
* [[RAG: embeddings en català]]&lt;br /&gt;
* [[QDrant. Bases de dades semàntiques]]&lt;br /&gt;
* [[RAG: Retrieval]] (TODO)&lt;br /&gt;
* [[RAG: Context]] (TODO)&lt;br /&gt;
* [[RAG: LLM amb Ollama]] (TODO)&lt;br /&gt;
* [[RAG: flux de treball complet, posar-ho tot junt]] (TODO)&lt;br /&gt;
* [[Document 20, per documentar i esborrar]]&lt;br /&gt;
&lt;br /&gt;
=Joan Quintana Compte=&lt;br /&gt;
*[[Curriculum Vitae Joan Quintana Compte]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299234</id>
		<title>Joanillo mediawiki: INS Jaume Balmes</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299234"/>
		<updated>2026-10-10T21:01:16Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Tasques PLN i Tecnologies del Llenguatge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per qualsevol consulta, enviar un mail a [mailto:joanqc_arroba_gmail_dot_com Joan Quintana]&lt;br /&gt;
=DAW. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[DAW-M06-WEC]]. Desenvolupament d'Aplicacions Web (DAW)&lt;br /&gt;
=ASIX. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[ASIX-M09-IAW]]. Implantació d'Aplicacions Web (ASIX)&lt;br /&gt;
*[[ASIX-M10-UF2]]. Amplantació de Bases de dades (ASIX)&lt;br /&gt;
&lt;br /&gt;
=FP Informàtica: Contingut antic=&lt;br /&gt;
*[[Servidor BBDD]]&lt;br /&gt;
*[[ASIX-M11-SAD]]. Seguretat i Alta Disponibilitat&lt;br /&gt;
*[[DAI-C8-EC]]&lt;br /&gt;
*[[ASI-C6-ASGBD]]&lt;br /&gt;
*[[ASI-C3-IAIG]]&lt;br /&gt;
*[[Assignatura PHP]]&lt;br /&gt;
*[[LPI: Linux Professional Institute]]&lt;br /&gt;
*[[Normativa d'aula. Exemples]]&lt;br /&gt;
*[[Aula 44 (Ubuntu). Configuració]]&lt;br /&gt;
*[[Enviar notes als alumnes, fitxer CSV]]&lt;br /&gt;
*[[Extraescolar Robòtica 2015-2016]]&lt;br /&gt;
*[[Extraescolar Robòtica 2016-2017]] (Construcció d'un SIMON)&lt;br /&gt;
&lt;br /&gt;
= HowTo Ubuntu =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Alias]]&lt;br /&gt;
*Cercar fitxers amb find: https://help.ubuntu.com/community/find&lt;br /&gt;
*[[Cercar dins dels fitxers]] (i carpetes amb més fitxers)&lt;br /&gt;
*Expressions regulars: [[Expressions_Regulars]]&lt;br /&gt;
*[[Usuaris i grups]]&lt;br /&gt;
*[[Instal·lació Tomcat#Quant a les variables d'entorn]]&lt;br /&gt;
*[[Tips Linux]]&lt;br /&gt;
*'''Editors''': sudo apt-get install joe i sudo apt-get install scite. scite és l'equivalent al Notepad++ (de fet, el Notepad++ es basa en el scite)&lt;br /&gt;
*[[Màscara umask]]&lt;br /&gt;
*[[Establir l'hora del sistema]]&lt;br /&gt;
*Comprimir i descomprimir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar czvf fitxer_comprimit.tgz fitxer1.txt fitxer2.txt dir1 dir2&lt;br /&gt;
tar xvzf fitxer_comprimit.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Releases d'Ubuntu: es pot veure una taula a http://en.wikipedia.org/wiki/Ubuntu&lt;br /&gt;
*[[holamon amb diferents llenguatges de programació]]&lt;br /&gt;
*Per redirigir la sortida d'errors d'una comanda a fitxer: make 2&amp;gt; error.log&lt;br /&gt;
*utilitzar apt-get amb un proxy (institut): &lt;br /&gt;
Editem el fitxer /etc/apt/apt.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Acquire::http::Proxy &amp;quot;http://192.168.0.5:8080&amp;quot;; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També: You can also set a proxy on the fly via a console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export http_proxy=&amp;quot;http://proxy&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you apt/aptitude... etc. from that console, it will use the specified proxy.&lt;br /&gt;
*comanda history (documentar)&lt;br /&gt;
*executar processos en background (&amp;amp;). http://www.networkdictionary.com/software/Linux331.php. (documentar)&lt;br /&gt;
*Trobar informació del processador:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
$ cat /proc/cpuinfo | grep MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Consum de memòria (ordenat per processos que consumeien més memòria):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ps --sort -rss -eo rss,pid,command | head&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===utilitats===&lt;br /&gt;
*[[bc: calculadora CLI]]&lt;br /&gt;
*'''pdftotext''': pdf to text, fa una conversió intel.ligent, de manera que el resultat queda bastant ben formatat. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pdftotext [options] &amp;lt;PDF-file&amp;gt; [&amp;lt;text-file&amp;gt;]&lt;br /&gt;
$ pdftotext -nopgbrk /home/joan/.aMule/Incoming/physical_computing.pdf /home/joan/.aMule/Incoming/physical_computing.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Convertir un CD a mp3''':&lt;br /&gt;
http://installubuntu.blogspot.com/2006/09/como-convertir-cd-mp3.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install sound-juicer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el menú està a Aplicaciones &amp;gt; Sonido y vídeo &amp;gt; Extractor de sonidos de CD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Luego de abrir el programa que se encuentra en &amp;quot;Aplicaciones - sonido y vídeo - Extractor de música de CD's Sound juicer&amp;quot; debe seguir los siguientes pasos:&lt;br /&gt;
1. Ir a Editar - preferencias.&lt;br /&gt;
2. Hacer clic en el botón editar perfiles (abajo-derecha).&lt;br /&gt;
3. Crear un nuevo Profile haciendo clic en &amp;quot;Nuevo&amp;quot;.&lt;br /&gt;
4. Puede colocar el siguiente Nombre de perfil: Calidad de CD, con pérdida mp3.&lt;br /&gt;
5. Luego seleccionarlo y editarlo colocar en Descripción del perfil: Extracción MP3.&lt;br /&gt;
6. En Tubería Gstreamer copiar y pegar lo siguiente:&lt;br /&gt;
audio/x-raw-int,rate=44100,channels=2 ! lame name=enc&lt;br /&gt;
7. Digitar en &amp;quot;Extensión de archivo&amp;quot;: MP3&lt;br /&gt;
8. Seleccionar ¿Está activo?&lt;br /&gt;
9. Hacer clic en Aceptar, luego en &amp;quot;Cerrar&amp;quot; las dos veces siguientes y por último &amp;quot;Cerrar&amp;quot; el programa.&lt;br /&gt;
10. Volver a abrir Sound Juice, e ir a &amp;quot;Editar - Preferencia&amp;quot; y seleccionar en &amp;quot;Formato de salida&amp;quot; &amp;quot;calidad de cd, con pérdida mp3 (audio mp3)&lt;br /&gt;
- y por último cerrar.&lt;br /&gt;
De aquí en adelante debe convertir los CD's a MP3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Buidar la paperera de reciclatge''': important quan m'he quedat sense espai:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo rm -rf ~/.Trash/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per saber quines són les carpetes que ocupen més espai: '''ncdu''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install ncdu&lt;br /&gt;
$ ncdu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Passar de format DVD a mp4''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat *.VOB &amp;gt; movie.vob&lt;br /&gt;
$ ffmpeg -i movie.vob video.mp4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Utilitats de xarxa===&lt;br /&gt;
'''iperf''' per comprovar la velocitat real de xarxa entre dos punts.&lt;br /&gt;
*https://www.linode.com/docs/networking/diagnostics/install-iperf-to-diagnose-network-speed-in-linux/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install iperf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
iPerf requires two systems because one system must act as a server, while the other acts as a client. The client connects to the server you're testing the speed of.&lt;br /&gt;
&lt;br /&gt;
On the node you plan to test, launch iPerf in server mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On your second node, connect to the first. Replace 198.51.100.5 with the first node’s IP address.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -c 192.168.0.116&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
Server listening on TCP port 5001&lt;br /&gt;
TCP window size: 85.3 KByte (default)&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
[  4] local 192.168.0.116 port 5001 connected with 192.168.0.240 port 51900&lt;br /&gt;
[ ID] Interval       Transfer     Bandwidth&lt;br /&gt;
[  4]  0.0-10.0 sec   113 MBytes  94.1 Mbits/sec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per tant la meva connexió és de 100 Mbits/sec (no arriba al teòric de 100).&lt;br /&gt;
&lt;br /&gt;
Si vull testejar un cable llarg per assegurar-me de què el seu rendiment és correcte, en un lloc on no hi ha connexió de xarxa, necessito dos portàtils amb IP fixa. Com que el cable és normal (no creuat), i per fer el test directe necessito un cable creuat, el que he de fer és dues possibilitats:&lt;br /&gt;
*empalmar un tros curt de cable creuat, i així el cable no creuat es converteix en creuat.&lt;br /&gt;
*utilitzar un switch/router, i posar el cable llarg al router, i un altre tros de cable normal també al router des de l'altre portàtil.&lt;br /&gt;
'''NOTA''': ara hi ha targetes de xarxa que poden treballar tant en cables creuats com no creuats.&lt;br /&gt;
===velocitat de la connexió inal·làmbrica (juny 2019)===&lt;br /&gt;
*https://www.cyberciti.biz/tips/linux-find-out-wireless-network-speed-signal-strength.html&lt;br /&gt;
Llista totes les xarxes wifi visibles:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Millor filtrar per la que ens interessa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi | grep JaumeBalmes&lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  79      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  65      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  11    54 Mbit/s  42      ▂▄__  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  12    54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  19      ▂___  WPA1 WPA2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iwconfig wlp1s0 | grep -i --color signal&lt;br /&gt;
Link Quality=45/70  Signal level=-65 dBm &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ watch -n 1 cat /proc/net/wireless&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conèixer especificacions del sistema===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -m&lt;br /&gt;
i686 -&amp;gt; 32 bits&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
...&lt;br /&gt;
model name	: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
arquitectura i kernel version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -r&lt;br /&gt;
3.2.0-49-generic-pae&lt;br /&gt;
&lt;br /&gt;
$ uname -a&lt;br /&gt;
Linux joan-poratolí gamer: Mars Gaming MM018rtatil 3.2.0-49-generic-pae #75-Ubuntu SMP Tue Jun 18 18:00:21 UTC 2013 i686 i686 i386 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lscpu&lt;br /&gt;
Architecture:          i686&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo lshw -c processor&lt;br /&gt;
  *-cpu:0                 &lt;br /&gt;
       description: CPU&lt;br /&gt;
       product: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
       vendor: Intel Corp.&lt;br /&gt;
       physical id: 5&lt;br /&gt;
       bus info: cpu@0&lt;br /&gt;
       version: 6.5.5&lt;br /&gt;
       serial: 0002-0655-0000-0000-0000-0000&lt;br /&gt;
       slot: U2E1&lt;br /&gt;
       size: 1199MHz&lt;br /&gt;
       capacity: 2400MHz&lt;br /&gt;
...ratolí gamer: Mars Gaming MM018&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
memòria:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ free&lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:       3980780    1925680    2055100          0     141292     882996&lt;br /&gt;
-/+ buffers/cache:     901392    3079388&lt;br /&gt;
Swap:      4049916          0    4049916&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/meminfo |grep MemTotal&lt;br /&gt;
MemTotal:    ratolí gamer: Mars Gaming MM018    3980780 kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ vmstat -s&lt;br /&gt;
      3980780 K total memory&lt;br /&gt;
      1901032 K used memory&lt;br /&gt;
       878692 K active memory&lt;br /&gt;
       829180 K inactive memory&lt;br /&gt;
      2079748 K free memory&lt;br /&gt;
       141428 K buffer memory&lt;br /&gt;
       895400 K swap cache&lt;br /&gt;
      4049916 K total swap&lt;br /&gt;
            0 K used swap&lt;br /&gt;
      4049916 K free swap&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===ratolí gamer: Mars Gaming MM018===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://askubuntu.com/questions/19569/how-can-i-assign-actions-to-all-my-mouse-buttons&lt;br /&gt;
per saber quins botons del ratolí es reconeixen:&lt;br /&gt;
$ xev&lt;br /&gt;
&lt;br /&gt;
Per mapejar:&lt;br /&gt;
sudo apt-get install xbindkeys&lt;br /&gt;
&lt;br /&gt;
https://wiki.archlinux.org/index.php/Xbindkeys&lt;br /&gt;
&lt;br /&gt;
$ xbindkeys&lt;br /&gt;
Error : /home/joan/.xbindkeysrc not found or reading not allowed.&lt;br /&gt;
please, create one with 'xbindkeys --defaults &amp;gt; /home/joan/.xbindkeysrc'.&lt;br /&gt;
or, if you want scheme configuration style,&lt;br /&gt;
with 'xbindkeys --defaults-guile &amp;gt; /home/joan/.xbindkeysrc.scm'.&lt;br /&gt;
&lt;br /&gt;
xfce4-terminal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;xterm&amp;quot;do&lt;br /&gt;
#  control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot; control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot;&lt;br /&gt;
    m:0x4 + c:37&lt;br /&gt;
    Control + Control_L &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Command&amp;quot;&lt;br /&gt;
    m:0x3 + c:50&lt;br /&gt;
    Shift + Shift_L &lt;br /&gt;
&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
(TBD)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SHELL===&lt;br /&gt;
*[[Manuals de bash]]&lt;br /&gt;
*[[Script per a crear usuaris]]&lt;br /&gt;
*[[Canviar el prompt per defecte]]&lt;br /&gt;
*[[Truquets bash]]&lt;br /&gt;
*[[xclip. Portapapers, clipboard]]&lt;br /&gt;
*[[xdotool - command-line X11 automation tool]]&lt;br /&gt;
*Fer sudo sense demanar password (Ubuntu 12.04):&lt;br /&gt;
# User privilege specification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amb aquesta comanda estem editant el fitxer /etc/sudoers. Es tracta de posar ''NOPASSWD:'' per tal de què no demani pwd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
root    ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
&lt;br /&gt;
# Members of the admin group may gain root privileges&lt;br /&gt;
%admin ALL=(ALL) ALL&lt;br /&gt;
&lt;br /&gt;
# Allow members of group sudo to execute any command&lt;br /&gt;
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paquets ===&lt;br /&gt;
*[[Instal·lar paquets]]&lt;br /&gt;
=== Grub2 ===&lt;br /&gt;
*[[Grub2]]&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració d'Apache amb Ubuntu]]&lt;br /&gt;
*[[Virtual Host: www.empresalibre.org, wiki.empresalibre.org, blog.empresalibre.org]]&lt;br /&gt;
*[[AWStats: analitzant les estadístiques]]&lt;br /&gt;
*[[Hosting projecte. Possibilitats]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració de Postgres]]&lt;br /&gt;
*[[Còpies de seguretat de Postgres I]]: pg_dump (és el que utilizo per fer els scripts de còpia de seguretat)&lt;br /&gt;
*[[Còpies de seguretat de Postgres II]]: Còpia física del directori data/&lt;br /&gt;
*[[Còpies de seguretat de Postgres III]]: Point-In-Time-Recovery, PITR&lt;br /&gt;
*[[Pràctiques de còpia de seguretat Postgres]]&lt;br /&gt;
*[[PHP-PostgreSQL Functions: programació PHP. Procediments]]&lt;br /&gt;
*[[Teoria PL/pgSQL]]&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Instal·lació Mysql]]&lt;br /&gt;
*[[crear base de dades i usuari per a alumnes]]&lt;br /&gt;
*How To (xuleta) de Mysql per als alumnes: [[Sistemes_Gestors_de_Bases_de_Dades._MySQL._Instal·laci%C3%B3%2C_configuraci%C3%B3_i_%C3%BAs]]&lt;br /&gt;
*[[Optimitzar les taules del Mysql]]&lt;br /&gt;
*[[Mysql cluster]]&lt;br /&gt;
&lt;br /&gt;
=== BD alternatives ===&lt;br /&gt;
*[[SQLite]]&lt;br /&gt;
*[[CouchDB]]&lt;br /&gt;
*[[Curs MongoDB 2014 al PUE]]. http://www.mongodb.org/&lt;br /&gt;
&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració de Samba]]&lt;br /&gt;
=== Servidor DNS (BIND9) ===&lt;br /&gt;
*[[Servidor DNS (BIND9)]]&lt;br /&gt;
=== DynDNS (i noip) (i OVH)===&lt;br /&gt;
*[[DynDNS]]&lt;br /&gt;
*[[Configurar un servidor virutal amb l'Apache]]&lt;br /&gt;
*[[Domini públic amb IP dinàmica]]&lt;br /&gt;
*[[update Abril 2014. noip.com]]&lt;br /&gt;
*[[Migració del servidor joanillo.org a OVH Cloud (núvol)]] (setembre 2020)&lt;br /&gt;
*[[Certificats SSL amb certbot]]&lt;br /&gt;
*[[OVH. VPS Essential jaumebalmes.net]]&lt;br /&gt;
&lt;br /&gt;
=== rsync ===&lt;br /&gt;
*[[rsync]]&lt;br /&gt;
=== Instal·lació Java ===&lt;br /&gt;
*[[Instal·lació Java]]&lt;br /&gt;
*[[Pràctica Hola món]]&lt;br /&gt;
*[[Connexió Java-MySQL bàsica]] (maig 2022)&lt;br /&gt;
&lt;br /&gt;
=== Mediawiki ===&lt;br /&gt;
*[[Instal·lació Mediawiki]]&lt;br /&gt;
*[[xuleta MediaWiki]]&lt;br /&gt;
*[[Protegir automaticament les pàgines - hack mediawiki]]&lt;br /&gt;
*[[Habilitar upload per a imatges i pdf, etc]] (i tar.gz)&lt;br /&gt;
*[[Editar la plantilla d'impressió]]&lt;br /&gt;
*[[Editar la plantilla normal]]&lt;br /&gt;
*[http://meta.wikimedia.org/wiki/MediaWiki_FAQ MediaWiki FAQ]&lt;br /&gt;
*[[Extra Edit Buttons]]&lt;br /&gt;
*[[Còpia de seguretat]]&lt;br /&gt;
*[[Namespaces, plantilles i categories al Mediawiki]]&lt;br /&gt;
*[[Categories definides al meu mediawiki]]&lt;br /&gt;
*[[Hack mediawiki: ficant una entrada des del MySQL]]&lt;br /&gt;
*[[mediawiki sidebar]]&lt;br /&gt;
*[[Extension:SphinxSearch]]: millorar les cerques&lt;br /&gt;
*mediawiki a http://wiki.empresalibre.org, http://wikijoan.dyndns.org, http://localhost/wiki, http://192.168.1.130/wiki: està explicat a [[Virtual_Host:_www.empresalibre.org%2C_wiki.empresalibre.org%2C_blog.empresalibre.org#Configuraci.C3.B3_MediaWiki]]&lt;br /&gt;
*[[cache del mediawiki]]&lt;br /&gt;
*[[Estadístiques d'activitat. Procedures amb MySQL]]&lt;br /&gt;
*[[error: Table './wikidb/searchindex' is marked as crashed]]&lt;br /&gt;
*[[combatre el spam en una mediawiki]]&lt;br /&gt;
*[[Atac wikijoan 29-01-2012]]&lt;br /&gt;
*[[Fórmules matemàtiques amb Latex]]&lt;br /&gt;
*[[(SQL) Recuperar el text d'una pàgina a partir del títol de la pàgina]]&lt;br /&gt;
*[[Crear un nou usuari amb permisos d'edició]]&lt;br /&gt;
*[[Redirecció a l'entrada de Màquines recreatives de la wiki]]&lt;br /&gt;
*[[Migració 1.17 a 1.34 (8 anys)]] (gener 2020, no s'ha fet cap migració en 8 anys)&lt;br /&gt;
*[[Spam octubre 2020]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació Tomcat]]&lt;br /&gt;
&lt;br /&gt;
=== Pentaho ===&lt;br /&gt;
*[[Recursos teoria BI]]&lt;br /&gt;
*[[Pentaho BI Suite Instal·lació]]&lt;br /&gt;
&lt;br /&gt;
=== Mondrian ===&lt;br /&gt;
*[[Instal·lació Mondrian]]&lt;br /&gt;
*[[Instal·lació Mondrian 2010]]&lt;br /&gt;
&lt;br /&gt;
=== PDI-Pentaho Data Integration (aka Kettle) ===&lt;br /&gt;
*[[Introducció a Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Instal·lació Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Primers passos amb PDI]]&lt;br /&gt;
*[[DAI-C8-EC:_Eines_ETL_i_Integració_de_Dades._Kettle]]. Pràctica EC PDI-Kettle-Spoon&lt;br /&gt;
&lt;br /&gt;
=== Compilació del Kernel amb Ubuntu Studio ===&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 1r mètode]]&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 2n mètode]]&lt;br /&gt;
=== How-To Geek Ubuntu ===&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ the How-To Geek]&lt;br /&gt;
=== Runlevel ===&lt;br /&gt;
*[[Runlevel]]&lt;br /&gt;
*[[Executar un script a l'inici]]&lt;br /&gt;
&lt;br /&gt;
=== Pendrives i USB ===&lt;br /&gt;
*[[Instal·lació des del USB (no ha funcionat)]]&lt;br /&gt;
*[[Muntar i formatar el pendrive]]&lt;br /&gt;
&lt;br /&gt;
=== Servidor d'echos (exercici) ===&lt;br /&gt;
*[[Compilació]]&lt;br /&gt;
*[[Dimonitzem el servidor d'echos]]&lt;br /&gt;
*[[Debianitzem el servidor d'echos]]&lt;br /&gt;
*[[Instal·lació del paquet i comprovació]]&lt;br /&gt;
*[[Registre de dimonis. Logging. Syslog]]&lt;br /&gt;
*[[Instal·lació amb configuració (Debconf)]]&lt;br /&gt;
[[Image:echod_0.1-1_i386.deb |echod_0.1-1_i386.deb ]]&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu]]&lt;br /&gt;
*[[Alternatives al SQL*Plus: gqlplus]]&lt;br /&gt;
*[[Clients per a Oracle]]&lt;br /&gt;
*[[PHP-llibreria OCI8]]&lt;br /&gt;
*[[PHP-llibreria OCI8: programació PHP. Procediments]]&lt;br /&gt;
*Manual Instal·lació Oracle 10g+OCI8 sobre Windows, fet per Àlex Adrià:[[Imatge:Installacio_oracle10G_oci8_windows.pdf‎]]&lt;br /&gt;
*Documentació d'Oracle: http://tahiti.oracle.com&lt;br /&gt;
*[[Manual Oracle 9i]]&lt;br /&gt;
*[[Arquitectura Oracle]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo ===&lt;br /&gt;
*[[Assignatura AIAIG]]&lt;br /&gt;
*[[Instal·lació Openbravo]]&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Openbravo 2.50]]&lt;br /&gt;
*[[Instal·lació Openbravo 3]] (abril 2011)&lt;br /&gt;
*[[Entrar al Postgres i fer còpies de seguretat bàsiques]]&lt;br /&gt;
*[[Instal·lar la traducció al castellà]]&lt;br /&gt;
*[[Instal·lar la traducció al català a partir de la del castellà]]&lt;br /&gt;
*[[Primers passos Openbravo]]&lt;br /&gt;
*[[Petita guia d'inici]]&lt;br /&gt;
*[[Càrrega massiva de dades]] (oficial) &lt;br /&gt;
*[[Càrrega massiva de dades II]] (SQL) &lt;br /&gt;
*[[Informes amb Jasper Reports]]&lt;br /&gt;
*[[Documentació]]&lt;br /&gt;
*[[Openbravo Web Services]]&lt;br /&gt;
*[[Llista oficial partners]]&lt;br /&gt;
*[[Canal IRC]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/index.php/Openbravo_ERP_roadmap full de ruta]&lt;br /&gt;
*[[Implantació d'una ERP]]&lt;br /&gt;
*[[Dreceres de teclat Openbravo 2.40]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/Business_Intelligence_Integration Openbravo+Pentaho]&lt;br /&gt;
*Millores versió 2.50: http://wiki.openbravo.com/wiki/Openbravo_ERP_2.50_ReleaseNotes&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*Acceptance Testing: http://wiki.openbravo.com/wiki/index.php/Acceptance_Testing&lt;br /&gt;
*[[Problemes resolts Openbravo]]&lt;br /&gt;
*[[Desenvolupar Openbravo amb Eclipse]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo POS ===&lt;br /&gt;
*[[Instal·lació Openbravo POS]]&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*FAQ: http://wiki.openbravo.com/wiki/OpenbravoPOS_FAQ&lt;br /&gt;
*[[Funcionament del Openbravo POS]]&lt;br /&gt;
*[[Cosetes del Openbravo POS]]&lt;br /&gt;
*Programant Openbrabo POS: &lt;br /&gt;
**http://wiki.openbravo.com/wiki/OpenbravoPOS_Developer_guide&lt;br /&gt;
**http://wiki.openbravo.com/wiki/Openbravo_POS_Scripting_Tutorial&lt;br /&gt;
*[[Instal·lar hardware TPV]]&lt;br /&gt;
*[[Compilar Openbravo POS amb NetBeans i Eclipse]]&lt;br /&gt;
*Manual que proporciona Eines TIC: [[Imatge:7 Guia TPV.pdf]]&lt;br /&gt;
*[[Direct Printing: Epson TM-T70 + Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
=== OpenERP / Tryton ===&lt;br /&gt;
*pdf Jordi Esteve (UPC), Festa Ubuntu 9.04. [[Imatge:Que es openerp.pdf]]&lt;br /&gt;
*[[Instal·lació OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP II]]&lt;br /&gt;
*[[Configuració i documentació Open ERP]]&lt;br /&gt;
*[[OpenERP. Simulant cas real]]&lt;br /&gt;
*[[Models AEAT per a empreses]]&lt;br /&gt;
*[[Monitoritzar canvis en les taules PostgreSQL de OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP 7.0 (maig 2014)]]&lt;br /&gt;
*[[instal·lació Tryton]] (maig 2014) (fork comunitari de OpenERP). (TBD) (per ex, nan-tic.com han passat de OpenERP a Tryton)&lt;br /&gt;
&lt;br /&gt;
=== Abanq ===&lt;br /&gt;
*[[Què és Abanq]]&lt;br /&gt;
*[[Documentació Abanq]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu a partir de les fonts]]&lt;br /&gt;
*[[Treballant amb Abanq: fer una factura]]&lt;br /&gt;
*[[Treballant amb Abanq II]]&lt;br /&gt;
&lt;br /&gt;
=== Eines TIC ===&lt;br /&gt;
*[[Què és Eines TIC]]&lt;br /&gt;
&lt;br /&gt;
=== Sugar CRM ===&lt;br /&gt;
*[[Què és Sugar CRM?]]&lt;br /&gt;
*[[Instal·lació Sugar CRM]]&lt;br /&gt;
*[[Traducció al castella de Sugar CRM]]&lt;br /&gt;
*[[Documentació Sugar CRM]]&lt;br /&gt;
*[[WebServices, SOAP]]&lt;br /&gt;
*[[Integració Sugar CRM i Openbravo]]&lt;br /&gt;
=== vtiger ===&lt;br /&gt;
*[[Instal·lació vTiger]]&lt;br /&gt;
*[[Pràctica vTiger: gestió d'incidències]]&lt;br /&gt;
&lt;br /&gt;
=== Alfresco ===&lt;br /&gt;
*[[Què és un DMS?]]&lt;br /&gt;
*[[Registre i Documentació Alfresco Enterprise]]&lt;br /&gt;
*[[Compilació des de les fonts]]&lt;br /&gt;
*[[Instal·lació Alfresco a Debian]] inclou Tomcat. Ha funcionat&lt;br /&gt;
*[[Instal·lació Alfresco Ubuntu]] només war. De moment no ha funcionat&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Alfresco Community 3.4 - febrer 2011]]&lt;br /&gt;
*[[Documentació Alfresco]]&lt;br /&gt;
*[[Backup and Recovery d'Alfresco]]&lt;br /&gt;
&lt;br /&gt;
=== Zimbra ===&lt;br /&gt;
*[[Què és Zimbra Collaboration Suite]]&lt;br /&gt;
*Zimbra Tour en Flash a http://www.zimbra.com/demos/zimbra_tour/&lt;br /&gt;
*Zimbra Hosted Free Trial: http://www.zimbra.com/products/hosted_demo.php&lt;br /&gt;
&lt;br /&gt;
===Orange HRM ===&lt;br /&gt;
*[[Documentació Orange]]&lt;br /&gt;
*[[Instal·lació Orange HRM]]&lt;br /&gt;
&lt;br /&gt;
===MantisBT: Gestió d'Incidències ===&lt;br /&gt;
*[[Instal·lació MantisBT]]&lt;br /&gt;
*[[Característiques MantisBT]]&lt;br /&gt;
*[[Instal·lació i configuració Mantisbalmes curs 2011-12 (producció)]]&lt;br /&gt;
&lt;br /&gt;
=== Software Nòmines Open Source ===&lt;br /&gt;
*[[Documentació Nòmines]]&lt;br /&gt;
&lt;br /&gt;
=== BulmaGés ===&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian]]&lt;br /&gt;
*[[Compilació de Bulmagés des del codi font]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 3a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Ubuntu 4a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 5a prova]]&lt;br /&gt;
&lt;br /&gt;
=== Wordpress ===&lt;br /&gt;
*[[Instal·lació i configuració d'un blog amb wordpress]]&lt;br /&gt;
*[[Hack WordPress]]&lt;br /&gt;
*[[eCommerce - carret de la compra]]&lt;br /&gt;
*[[Programació carret de la compra PayPal]]&lt;br /&gt;
*[[Configurar plugin de Twitter]]&lt;br /&gt;
*[[Canviar la imatge de la capçalera del Wordpress en funció de la categoria]]&lt;br /&gt;
&lt;br /&gt;
=== Moodle ===&lt;br /&gt;
*[[Instal·lació i configuració del Moodle]]&lt;br /&gt;
*[[Backup i Restore del Moodle]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 10-11]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 11-12]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 12-13]]&lt;br /&gt;
&lt;br /&gt;
=== Groupion ===&lt;br /&gt;
*[[Què és Groupion]]&lt;br /&gt;
*Edicions i Llicència Groupion: http://www.groupion.com/en/getgroupion/editions/&lt;br /&gt;
*[[Documentació Groupion]]&lt;br /&gt;
*[[Groupion: Instal·lació i Administració]]&lt;br /&gt;
&lt;br /&gt;
=== Asterisk ===&lt;br /&gt;
*[[Què és asterisk?]]&lt;br /&gt;
&lt;br /&gt;
===SIG-GIS: Sistemes d'Informació Geogràfica===&lt;br /&gt;
*[[gvSIG: Instal·lació i configuració]]&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
*[[Instal·lació Android SDK]]&lt;br /&gt;
*[[Documentació Android]]&lt;br /&gt;
*[[Utilitzar SQLite des de la Shell en Android]]&lt;br /&gt;
*[[Programant Android SDK]]&lt;br /&gt;
*[[Projecte: dictionary.xml]]&lt;br /&gt;
*[[HTC Dream de Movistar]]&lt;br /&gt;
*[[GMote per a control remot]]&lt;br /&gt;
*[[TBD Android]]&lt;br /&gt;
*[[Android: aplicacions útils]]&lt;br /&gt;
*[[Motorola Moto G]]&lt;br /&gt;
*[[Programació amb MIT App Inventor]]&lt;br /&gt;
&lt;br /&gt;
=== Disc de xarxa NDAS ===&lt;br /&gt;
*[[iomega Home Network Hard Drive 320GB]]&lt;br /&gt;
*[[iomega Home Network Hard Drive 500GB]] a l'institut&lt;br /&gt;
&lt;br /&gt;
===Subversion===&lt;br /&gt;
*[[Funcionament Subversion]]&lt;br /&gt;
&lt;br /&gt;
===FTP Server: vsftp===&lt;br /&gt;
*[[FTP Server: vsftp]]&lt;br /&gt;
*[[Client de FTP: gftp]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
*[[SSH]]&lt;br /&gt;
*[[Sessió SSH dels alumnes]]&lt;br /&gt;
===Virtual Box===&lt;br /&gt;
*[[Virtual Box en mode comanda: VBoxManage]]&lt;br /&gt;
===Docker, contenidors===&lt;br /&gt;
*[[Primers passos amb docker]]&lt;br /&gt;
*[[docker: instància de mysql server]]&lt;br /&gt;
*[[docker: PostgreSQL]]&lt;br /&gt;
*[[docker a DAM-M02]]&lt;br /&gt;
*[[Cas pràctic: dockeritzar una aplicació. Hauk]]&lt;br /&gt;
*[[Java amb Docker: HelloWorld]]&lt;br /&gt;
*[[docker: intel·ligència artificial - IOC]]&lt;br /&gt;
&lt;br /&gt;
===Remote Shell RSH===&lt;br /&gt;
*[[Remote Shell RSH]]&lt;br /&gt;
===Backup===&lt;br /&gt;
*[[Política de backup]]&lt;br /&gt;
*[[Backup del sistema]]&lt;br /&gt;
*[[backup_UbuntuServer.sh]]&lt;br /&gt;
*[[backup_DELL_Studio.sh]]&lt;br /&gt;
*[[backup_DELL_WXP.bat]]&lt;br /&gt;
*[[backup_LINKAT.sh]]&lt;br /&gt;
*[[backup_BBDD.bat]]&lt;br /&gt;
*[[Còpia de UbuntuServer a DVD]]&lt;br /&gt;
*[[Backup del servidor - oct 2011]]&lt;br /&gt;
*[[Backup del portàtil de producció al servidor]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de la línia de comandes===&lt;br /&gt;
*[[Enviar mail des de la línia de comandes]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de PHP===&lt;br /&gt;
*[[Enviar mail des de PHP: phpMailer]]&lt;br /&gt;
&lt;br /&gt;
===Postfix===&lt;br /&gt;
*Configuració bàsica del Postfix: http://www.postfix.org/BASIC_CONFIGURATION_README.html&lt;br /&gt;
*[[Configuració del postfix]] (inacabat)&lt;br /&gt;
*[[Configuració del postfix II]] (inacabat)&lt;br /&gt;
&lt;br /&gt;
===Classificació fotos===&lt;br /&gt;
*[[ImageMagick]]&lt;br /&gt;
*[[LinPHA]]&lt;br /&gt;
*[[Coppermine]]&lt;br /&gt;
*[[Pixtuff 3.0]]&lt;br /&gt;
*[[Arthropoda]]&lt;br /&gt;
*[[Flickr API]]&lt;br /&gt;
*Recuperar fotos d'una tarja SD o d'un USB: [[http://backinlinux.com/2013/06/11/recuperar-informacion-borrada-en-una-usb-o-disco-con-ubuntu/]]. Ha funcionat correctament.&lt;br /&gt;
&lt;br /&gt;
=== Món Linux ===&lt;br /&gt;
*Exàmen LPIC (wiki Sergi Tur): http://acacha.org/mediawiki/index.php/LPIC1_101&lt;br /&gt;
*revista digital: http://www.gacetatecnologica.com&lt;br /&gt;
*Linux Journal: http://www.linuxjournal.com/&lt;br /&gt;
*Linux Magazine: [http://www.linux-mag.com/ Linux Magazine]&lt;br /&gt;
*webs amigues: http://www.aplicacionesempresariales.com/&lt;br /&gt;
*Empreses que treballen amb Linux: &lt;br /&gt;
:http://libroblanco.com/cms/index.php/Search-dir.html&lt;br /&gt;
:http://www.catpl.org/catpl/empreses&lt;br /&gt;
* Llibre Blanc Smile: Introducció a l'Open Source: [[Imatge:Livre_Blanc_Smile_-_Introduction_à_l'open_source.pdf]]&lt;br /&gt;
* Video promocional Red Hat: Truth Happens: http://www.youtube.com/watch?v=ZtdnZNYN0MM&lt;br /&gt;
* Taula Rodona Linkat vs altres distribucions. Festa Ubuntu 9.04. [[Imatge:TaulaRodonaLinkat.pdf]]&lt;br /&gt;
* Programari lliure a l'escola. Projecte LINKAT. Festa Ubuntu 9.04. [[Imatge:Presentacio Terrassa 09.pdf]]&lt;br /&gt;
* Llibre ''Two bits'' (the cultural significance of free software). Cristopher M. Kelty. [[Imatge:Kelty-TwoBits.pdf]]&lt;br /&gt;
* Connexions (http://cnx.org/). Material educatiu en format lliure.&lt;br /&gt;
* Introducció a Linux (pdf):  [[Fitxer:UF1-Lx 1.pdf]] i [[Fitxer:UF1-Lx 2.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Jocs a Linux===&lt;br /&gt;
*Linux Game Database: http://www.lgdb.org&lt;br /&gt;
*[[Xiangqi-Chinese Chess: GMChess]]&lt;br /&gt;
&lt;br /&gt;
===webcams===&lt;br /&gt;
*[[webcams a Linux]]&lt;br /&gt;
*[[motion tracking - fiducial markers]]&lt;br /&gt;
*[[guvcview]]&lt;br /&gt;
&lt;br /&gt;
===Videos de l'escriptori===&lt;br /&gt;
*[[aplicatiu pyvnc2swf]]&lt;br /&gt;
*[[penjar videos al Youtube]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Fer vídeos del Youtube===&lt;br /&gt;
*teleprompter: http://www.cueprompter.com/&lt;br /&gt;
*[[DVD to AVI]] (Document per polir)&lt;br /&gt;
*[[Webcams a Linux]]&lt;br /&gt;
*[[Fotos i videos amb la Canon EOS 550D. Editor de video Openshot]]&lt;br /&gt;
*[[Tècniques de video]]&lt;br /&gt;
*screencast amb recordmydesktop (amb audio): [[Com_construir_un_MAME_Arcade#gravar_video_del_funcionament_jukebox.2FMAME]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Cremar un CD des de la línia de comandes===&lt;br /&gt;
*[[Cremar un CD des de la línia de comandes]]&lt;br /&gt;
===Ubuntu Server===&lt;br /&gt;
*[[Tips Ubuntu Server]]&lt;br /&gt;
*[[Gestor de finestres icewm]]&lt;br /&gt;
*[[OpenLDAP]]&lt;br /&gt;
===Fer un LiveCD===&lt;br /&gt;
*[[Fer un LiveCD 1]] (no ha funcionat)&lt;br /&gt;
*[[Fer un LiveCD 2]] (remastersys)&lt;br /&gt;
*[[Fer un LiveCD 3]] (remastersys de forma manual)&lt;br /&gt;
===Tips de seguretat===&lt;br /&gt;
*[[Obrir el SSH des d'una pàgina web]]&lt;br /&gt;
*[[xifratge simètric i asimètric]]&lt;br /&gt;
&lt;br /&gt;
===Projecte PHP exemplar===&lt;br /&gt;
* [[Projecte PHP exemplar: Introducció i objectius]]&lt;br /&gt;
* [[Debug: log4PHP]]&lt;br /&gt;
* [[cron]]&lt;br /&gt;
* [[localització (suport multiidioma)]]&lt;br /&gt;
&lt;br /&gt;
===ALTARM - Audit Logical Transactions And Recover Mistakes===&lt;br /&gt;
* [[ALTARM: Windows + Postgres + VB + ASP]]&lt;br /&gt;
&lt;br /&gt;
===Prendre notes amb Tomboy===&lt;br /&gt;
*[[Hacking Tomboy]]&lt;br /&gt;
===wiimote. Projectes amb la Wii===&lt;br /&gt;
*[[LLibreria WiiRemoteJ]]&lt;br /&gt;
*[[Utilitzar wiimote com a ratolí]]&lt;br /&gt;
*[[Pissarra digital]]&lt;br /&gt;
*[[Llibreria WiiC]]&lt;br /&gt;
&lt;br /&gt;
===Karaoke===&lt;br /&gt;
*[[Eliminar la part vocal d'una cançó]]&lt;br /&gt;
*[[PyKaraoke]]&lt;br /&gt;
&lt;br /&gt;
===Screenlets===&lt;br /&gt;
*[[Screenlets]]&lt;br /&gt;
&lt;br /&gt;
===Jocs Infantils===&lt;br /&gt;
*[[Jocs Infantils]]&lt;br /&gt;
===Taller===&lt;br /&gt;
*[[Fast and Easy Can Stirling Engine Tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Impressió===&lt;br /&gt;
*[[Instal·lació HP Deskjet F2480]]&lt;br /&gt;
&lt;br /&gt;
===Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals===&lt;br /&gt;
*[[Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals: Remastersys]]&lt;br /&gt;
&lt;br /&gt;
=== Problemes ===&lt;br /&gt;
*[[joan is not in the sudoers file]]&lt;br /&gt;
*[[problema restore mysql]]&lt;br /&gt;
*[[no em connecto al postgres des d'un ordinador de la xarxa local]]&lt;br /&gt;
*[[deshabilitar el touchpad mentre escrius]]&lt;br /&gt;
*[[el cron no executa el script]]&lt;br /&gt;
&lt;br /&gt;
===GIMP, tauleta gràfica Wacom, Animació 2D/3D, gràfics vectorials, retoc fotogràfic===&lt;br /&gt;
*[[GIMP i tauleta gràfica Wacom]]&lt;br /&gt;
*[[Programació GIMP]]&lt;br /&gt;
*[[Plugins GIMP]]&lt;br /&gt;
Amb Synfig Studio també es pot utilitzar la Wacom: [[Synfig_Studio:_Animació_2D#Creating_Shapes]]&lt;br /&gt;
*[[Synfig Studio: Animació 2D]]&lt;br /&gt;
*[[Blender: Animació 2D]] (modelització 3D)&lt;br /&gt;
*Inkscape: gràfics vectorials. Format SVG (Scalable Vector Graphics): http://inkscape.org/&lt;br /&gt;
*[[freeCAD]]&lt;br /&gt;
*[[Retoc fotogràfic tipus plugins d'Instagram]]&lt;br /&gt;
&lt;br /&gt;
===LibreCAD===&lt;br /&gt;
*[[LibreCAD]]. Free Open Source CAD software&lt;br /&gt;
===CNC===&lt;br /&gt;
Aquí concentro tots els enllaços relacionats amb '''CNC''':&lt;br /&gt;
*[[inkscape]] per a CNC. Per generar g-code i utilitzar Linuxcnc: https://www.youtube.com/watch?v=o7Mfi8ZMHWc&lt;br /&gt;
*[[HeeksCAD]]. Necessito HeeksCAD per obtenir el g-code&lt;br /&gt;
*[[LinuxCNC (EMC2)]]. Alternativa per a Linux&lt;br /&gt;
*[[dxf2gcode]]&lt;br /&gt;
*[[dxf2G]] (línia de comandes)&lt;br /&gt;
*[[utilitat grecode]]&lt;br /&gt;
*[[Màquines CNC]]&lt;br /&gt;
*[[Tutorial G-Code]]&lt;br /&gt;
*[[Fer_plaques_PCB_amb_màquina_CNC | fer plaques PCB amb màquina CNC (drilling and milling) ]]&lt;br /&gt;
*[[Construir_una_màquina_CNC | Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina_CNC_3040T | Màquina CNC 3040T]] (compra de bits/broques)&lt;br /&gt;
*[[Utiltizar_la_màquina_CNC | Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Projectes CNC. Documentació i know-how]]&lt;br /&gt;
*[[script CNC stroke]]&lt;br /&gt;
*[[script CNC hollow]]&lt;br /&gt;
*[[Halftone. Script drillpic2]]&lt;br /&gt;
*[[Càlculs CNC. Speeds and Feeds]]&lt;br /&gt;
*[[Màquina de tall làser (Fàbrica del Sol)]]&lt;br /&gt;
&lt;br /&gt;
===Màquina de Tall làser===&lt;br /&gt;
*[[Màquina de Tall làser. Referències]]&lt;br /&gt;
*[[script cncboxparam]] (projecte ''Maria 12 anys'', night light)&lt;br /&gt;
&lt;br /&gt;
===Tallar vinils===&lt;br /&gt;
*[[Silhouette Cameo]] (abril 2018)&lt;br /&gt;
&lt;br /&gt;
===FreeCAD, 3D printing===&lt;br /&gt;
*[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
===gnuplot===&lt;br /&gt;
*[[gnuplot]]&lt;br /&gt;
===Octave (equivalent a Matlab)===&lt;br /&gt;
*[[octave]] (A high-level interactive language for numerical computations)&lt;br /&gt;
&lt;br /&gt;
===Documents al núvol===&lt;br /&gt;
*[[Documents al núvol: Dropbox i Ubuntu One]]&lt;br /&gt;
*[[Documents al núvol: Copy (alternativa al Dropbox)]]&lt;br /&gt;
&lt;br /&gt;
===Servidor Pentium IV 3GHz===&lt;br /&gt;
*[[Servidor Pentium IV 3GHz]] (octubre 2011)&lt;br /&gt;
===Portàtil HP Pavilion g series (institut)===&lt;br /&gt;
*[[Portàtil HP Pavilion g series (institut)]]&lt;br /&gt;
&lt;br /&gt;
===Reconeixement de veu===&lt;br /&gt;
*[[CMU Sphinx]]&lt;br /&gt;
&lt;br /&gt;
===aMule===&lt;br /&gt;
*[[aMule remot]]&lt;br /&gt;
===cosetes===&lt;br /&gt;
*Nautilus: que la barra de direccions sigui text. http://www.taringa.net/posts/linux/5429141/Cambia-la-barra-de-direcciones-de-Nautilus-a-texto.html&lt;br /&gt;
*[[Llibres electrònics i l'editor Sublime Text2. Convertir pdf a txt]]&lt;br /&gt;
&lt;br /&gt;
===Veure la BBC amb una connexió VPN===&lt;br /&gt;
*[[Veure la BBC amb una connexió VPN]]&lt;br /&gt;
&lt;br /&gt;
= HowTo Linkat =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Primers passos]]&lt;br /&gt;
=== Materials de formació ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/dvdformacio/materials/td111/ Curs td111 de LINKAT]&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració Apache]]&lt;br /&gt;
*[[Lloc virtual per a un alumne]]&lt;br /&gt;
&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Automatitzar les còpies de seguretat]]&lt;br /&gt;
*[[Atacar des de la xarxa]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració del Postgres]]&lt;br /&gt;
&lt;br /&gt;
*[[Instal·lació PgAdmin]]&lt;br /&gt;
&lt;br /&gt;
=== Java-JDK ===&lt;br /&gt;
*[[Desinstal·lació total del java: JDK, JRE]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK II]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació i configuració del Tomcat]]&lt;br /&gt;
=== Apache Ant ===&lt;br /&gt;
*[[Instal·lació i configuració del Apache Ant]]&lt;br /&gt;
=== OpenBravo ===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo]]&lt;br /&gt;
*[[Traducció al castellà. Problemes]]&lt;br /&gt;
=== OpenBravo POS a la LINKAT===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo POS a la LINKAT]]&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració del Samba]]&lt;br /&gt;
=== MediaWiki ===&lt;br /&gt;
*[[Instal·lació i configuració d'una mediawiki]]&lt;br /&gt;
=== pendrive al linkat ===&lt;br /&gt;
*[[pendrive al linkat]]&lt;br /&gt;
=== Aplicacions Jaume Balmes ===&lt;br /&gt;
*[[Aplicació assistència]]&lt;br /&gt;
*[[jaumebalmes.net - Joomla]]&lt;br /&gt;
*[[Servidor virtual (Moodle i altres). Manteniment]]&lt;br /&gt;
&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Instal·lació Oracle a la LINKAT 3]]&lt;br /&gt;
&lt;br /&gt;
= Curs Administració Linux ICE-UPC =&lt;br /&gt;
*[[Presentació]]&lt;br /&gt;
*[[Sessió 1]]&lt;br /&gt;
*[[Sessió 2]]&lt;br /&gt;
*[[Sessió 3. Compilació del kernel]]&lt;br /&gt;
*[[Sessió 4]]&lt;br /&gt;
*[[Sessió 5. Gestió Remota, SSH]]&lt;br /&gt;
*[[Sessió 6]]&lt;br /&gt;
*[[Sessió 7]]&lt;br /&gt;
*[[Sessió 8]]&lt;br /&gt;
*[[Resum configuració xarxa]]&lt;br /&gt;
&lt;br /&gt;
= Curs Programació Linux ICE-UPC =&lt;br /&gt;
*[[Sessió 1 curs programació linux]]&lt;br /&gt;
*[[Sessió 2 curs programació linux]]&lt;br /&gt;
*[[Sessió 3 curs programació linux]]&lt;br /&gt;
*[[Sessió 4 curs programació linux]]&lt;br /&gt;
*[[Sessió 5 curs programació linux]]&lt;br /&gt;
*[[Sessió 6 curs programació linux]]&lt;br /&gt;
*[[Sessió 7 curs programació linux]]&lt;br /&gt;
*[[Sessió 8 curs programació linux]]&lt;br /&gt;
*[[Sessió 9 curs programació linux]]&lt;br /&gt;
*[[Sessió 10 curs programació linux]]&lt;br /&gt;
&lt;br /&gt;
= Projecte Langtrainer =&lt;br /&gt;
*[[Langtrainer: Introducció]]&lt;br /&gt;
*[[Langtrainer: Base de dades]]&lt;br /&gt;
*[[Langtrainer: Open Flash Chart-OFC]]&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Langtrainer: ToDo]]&lt;br /&gt;
*[[Langtrainer: Control de Qualitat, causístiques]]&lt;br /&gt;
*[[Langtrainer: nova instal·lació pas a pas]]&lt;br /&gt;
*[[Speech Recognition]]&lt;br /&gt;
*[[Vocabulari anglès empresarial]]&lt;br /&gt;
*[[Curs: Eines i estratègies metodològiques per a impartir anglès en els cicles formatius d'FP]]&lt;br /&gt;
=TTS i STT (speech recognition, language models, etc)=&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Instal·lació de sphinxbase i pocketsphinx a la RPi (proves)]] (Magic Mirror)&lt;br /&gt;
*[[TTS: Hora Catalana]]&lt;br /&gt;
&lt;br /&gt;
=Programació Web=&lt;br /&gt;
==PHP==&lt;br /&gt;
*[[Open Flash Chart]]&lt;br /&gt;
*[[executar PHP des del cron]]&lt;br /&gt;
*[[PHP i autenticació LDAP]]&lt;br /&gt;
*[[Framework Laravel]] (maig 2020)&lt;br /&gt;
&lt;br /&gt;
==AJAX==&lt;br /&gt;
*[[Història d'un formulari]]&lt;br /&gt;
&lt;br /&gt;
=Programació Java=&lt;br /&gt;
*Programació de videojocs: Space Invaders amb Java:&lt;br /&gt;
**http://balusoft.wordpress.com/2010/09/26/creando-un-space-invaders-con-java/&lt;br /&gt;
**http://dl.dropbox.com/u/9043876/Curso%20de%20Space%20Invaders/JAVA-INVADERS-00.html&lt;br /&gt;
*[[Shared Libraries amb Java]]&lt;br /&gt;
*[[Programació de sockets amb Java]]&lt;br /&gt;
&lt;br /&gt;
=Programació en C/C++=&lt;br /&gt;
*[[Llibreria EasyBMP]]&lt;br /&gt;
*[[Programació OpenGL]]&lt;br /&gt;
*[[OpenGL]] (i SDL)&lt;br /&gt;
*[[SDL sense servidor X. Raspberry Pi]]&lt;br /&gt;
*[[Tutorial de C++. El diario de Peter Class]] TBD (i altres tutorials)&lt;br /&gt;
*[[Programación en C sobre Linux]] TBD&lt;br /&gt;
*[[Llibreria libpg: accedir a PostgreSQL]]&lt;br /&gt;
*[[wiiuse - The Wiimote C Library]]&lt;br /&gt;
*[[Eclipse CDT]] (IDE per programar en C++ basat en Eclipse&lt;br /&gt;
*[[Anjuta]] IDE C/C++. Mirar també el IDE '''MonoDevelop'''&lt;br /&gt;
*[[llibreries gràfiques GTK]] (per fer finestres..., aplicacions d'escriptori)&lt;br /&gt;
*[[Videojocs amb Allegro]]&lt;br /&gt;
*[[diagrames de flux UML: dia]]&lt;br /&gt;
*[[Writing device drivers in Linux: A brief tutorial]]&lt;br /&gt;
*[[L'API de C de MySQL]]&lt;br /&gt;
*[[Estructures de dades amb C++]]&lt;br /&gt;
*[[parsejar fitxers XML]]&lt;br /&gt;
*[[Videojocs amb C++ i SDL]]&lt;br /&gt;
*[[STK Synthesis ToolKit in C++]]&lt;br /&gt;
*[[Coses útils C++]]&lt;br /&gt;
*[[Xlib programming]] Programació del servidor X&lt;br /&gt;
*[[Fast Fourier Transform: FFTW]]&lt;br /&gt;
*[[Fils/threads amb C++]]&lt;br /&gt;
*[[passar paràmetres per referència amb C]] (amb C++ és una mica diferent)&lt;br /&gt;
*[[Accedir a dispositius USB: llibreria libusb]]&lt;br /&gt;
*[[libxl: llegir i escriure fitxers Excel]]&lt;br /&gt;
*[[Expressions regulars amb C]]&lt;br /&gt;
*[[Programació ncurses]] (colors a la consola i controlar la posició del que escric a la consola)&lt;br /&gt;
*[[Programació dels microcontroladors AVR: avr-gcc]]&lt;br /&gt;
*[[Classe Cotxe, amb C a pèl i amb C++]]&lt;br /&gt;
*[[ID3 Tag Library]] (llegir els tags que hi ha en un fitxer mp3)&lt;br /&gt;
*[[Parser de JSON amb C i C++]]&lt;br /&gt;
*[[Aplicació de consola per capturar events del teclat amb C++ (non-blocking)]]&lt;br /&gt;
*[[POO en C++. Exemple Author-Book. Un objecte té com a data membre un altre objecte]]&lt;br /&gt;
*[[OpenCV a la RPi]] (amb webcams USB i amb la RasPiCam)&lt;br /&gt;
*[[OpenCV a Ubuntu 16.04]]&lt;br /&gt;
*[[OpenCV a Ubuntu 18.04]] (gener 2020)&lt;br /&gt;
*[[OpenCV: aplicatiu recta perfecte, cercle perfecte]] (gener 2020)&lt;br /&gt;
*[[Mètodes o esquemes algorítmics]]&lt;br /&gt;
*[[SDL mínim. Diferents tècniques]]&lt;br /&gt;
*[[Llibreria raylib (videojocs) a la Raspberry Pi]]&lt;br /&gt;
*[[Curs edX: Animation and CGI Motion (ColumbiaX: CSMM.104x)]] (Llibreria Eigen d'Àlgebra Lineal)&lt;br /&gt;
&lt;br /&gt;
=Programació Python=&lt;br /&gt;
*[[Pygame. Programació videojocs]]&lt;br /&gt;
*[[Mètodes numèrics. numpy, scipy, sympy]]&lt;br /&gt;
*[[Python Virtual Environments]]&lt;br /&gt;
*[[python3-tk: GUI amb tinker]]&lt;br /&gt;
*[[Bot de Twitter amb Python i Tweepy]] (setembre 2021)&lt;br /&gt;
&lt;br /&gt;
=Machine Learning, Deep Learning, AI=&lt;br /&gt;
*[[TensorFlow. Python]] (Deep Learning, DL)&lt;br /&gt;
*[[RPi i TensorFlow. Object detection and classification]]&lt;br /&gt;
*[[RPi. Real-time object tracking with TensorFlow]]&lt;br /&gt;
&lt;br /&gt;
=Programació videojocs amb Unity3D=&lt;br /&gt;
*[[Programació videojocs amb Unity3D]]&lt;br /&gt;
=Github=&lt;br /&gt;
*[[Github pràctic: control de versions]]&lt;br /&gt;
*[[Github pages]]&lt;br /&gt;
&lt;br /&gt;
=Node.js=&lt;br /&gt;
*[[Introducció a Node.js]]&lt;br /&gt;
*[[Node.js: Mòduls d'àudio]]&lt;br /&gt;
*[[Node.js: socket.io]]&lt;br /&gt;
&lt;br /&gt;
=Frameworks i llibreries de Javascript=&lt;br /&gt;
*[[React: A JavaScript library for building user interfaces]] (març 2020)&lt;br /&gt;
*[[ReactJS. Curs EdX. Introduction to ReactJS. Microsoft: DEV281x]]&lt;br /&gt;
*[[React Native]] (programació per a Android) (abril 2020)&lt;br /&gt;
*[[Desplegar un projecte web amb Express i Heroku]]&lt;br /&gt;
*[[Aplicació Reactjs a través del servidor web Express]]&lt;br /&gt;
*[[React CRUD tutorial]]&lt;br /&gt;
*[[App mòbil amb React Native: arbres singulars de Barcelona]] (abril-maig 2020, 2022)&lt;br /&gt;
*[[App mòbil amb React Native: Android Studio, mòbil amb USB, emulador]] (ReactNative sense Expo)&lt;br /&gt;
*[[React Native i bluetooth]] (ReactNative sense Expo)&lt;br /&gt;
*[[Llibreria three.js]] (webgl)&lt;br /&gt;
*[[Rest-API-Express-MongoDB]]&lt;br /&gt;
&lt;br /&gt;
=Google Maps=&lt;br /&gt;
*[[Google Maps JavaScript API v3]]&lt;br /&gt;
&lt;br /&gt;
=OpenStreetMap=&lt;br /&gt;
*[[OpenStreetMap - OSM]] (octubre 2019)&lt;br /&gt;
*[[Arbres Monumentals de Catalunya (programació OSM)]] (octubre 2019)&lt;br /&gt;
*[[Ancoratges de bicicleta a Barcelona]] (OSM) (oct 2019)&lt;br /&gt;
*[[opendata-barcelona]] (OSM)&lt;br /&gt;
*[[Traveling Salesman problem i arbres singulars de Barcelona]]&lt;br /&gt;
*[[Importació dels dòlmens de Catalunya]]&lt;br /&gt;
*[[Tiles Server. Renderització]]&lt;br /&gt;
*[[Esglésies romàniques de Catalunya]]&lt;br /&gt;
*[[Fronteres i límits administratius. GeoJSON. Mapes coroplètics]]&lt;br /&gt;
*[[Mapes medievals, mapes ficticis, mapes de fantasia, jocs basats en OSM]]&lt;br /&gt;
*[[Fusionar GeoJSON]]&lt;br /&gt;
*[[Openlayers: ol package. Exemple Casa de Papel]] (Casa de Papel, rutes BTT Cap de Creus)&lt;br /&gt;
*[[Openlayers amb ReactJS]]&lt;br /&gt;
*[[Exemples Openlayers (ol package)]]&lt;br /&gt;
*[[Projecte ProgessiveMaps]] (TBD)&lt;br /&gt;
*[[Reactnative, geolocation]] (programació Android)&lt;br /&gt;
*[[Mapes del ICGC]] (Institut Cartogràfic)&lt;br /&gt;
*[[Mapes de Mapbox]]&lt;br /&gt;
*[[tag route=railway a OSM. Línies de Ferrocarril catalanes]]&lt;br /&gt;
*[[Cales de Menorca]] i altres exemples (tossa, tossal)&lt;br /&gt;
*[[30DayMapChallenge]]&lt;br /&gt;
*Elevation API per generar mapes en relleu: https://elevationapi.com/&lt;br /&gt;
*[[Llibreria procedural-gl]] (mapes 3D tipus Google Earth i Relieve)&lt;br /&gt;
*[[Curs GDS (Dani Arribas)]]&lt;br /&gt;
*[[Catalunya Màgica]]&lt;br /&gt;
*[[Topònims Quintana]]&lt;br /&gt;
*[[Rutes GPS Joanillo]]&lt;br /&gt;
*[[Rutes BTT Joanillo]] (visió global)&lt;br /&gt;
*[[Municipis de Catalunya]]&lt;br /&gt;
*[[La Palma Volcano Resort]]&lt;br /&gt;
*[[CatGeoQuest]] (TBD)&lt;br /&gt;
*[[Montseny]] (TBD)&lt;br /&gt;
*[[Tracking BTT]] (TBD, eliminar)&lt;br /&gt;
*[[POLS: Pumpkin Outdoors Location Sharing]]&lt;br /&gt;
&lt;br /&gt;
=Web Services, APIs=&lt;br /&gt;
*[[API de openweathermap.org, thingful.net (Internet of Things)]]&lt;br /&gt;
*[[API de Strava]] (març 2021)&lt;br /&gt;
&lt;br /&gt;
=Web Data Extraction=&lt;br /&gt;
*[[Web Data Extraction]]&lt;br /&gt;
*[[Firefox add-on programming]] (Executar un bash script des del Firefox)&lt;br /&gt;
*jmining&lt;br /&gt;
=AWS: Amazon Web Services. Cloud=&lt;br /&gt;
*[[AWS: Amazon Web Services. Cloud]]&lt;br /&gt;
&lt;br /&gt;
=Informàtica musical=&lt;br /&gt;
[[Imatge:Ustudioware.jpg|thumbnail]]&lt;br /&gt;
*[[Fil de la història]]&lt;br /&gt;
*[[Windows: feines fetes]]. Midishare, JMusic, Invaders,...&lt;br /&gt;
*[[Ubuntu Studio]]&lt;br /&gt;
*[[ALSA: Advanced Linux Sound Architecture]]&lt;br /&gt;
*[[JACK: Audio Connection Kit]]&lt;br /&gt;
*[[kernel RT i variants]]&lt;br /&gt;
*[[Midishare]]&lt;br /&gt;
*[[Edirol UA-25 EX]]&lt;br /&gt;
*[[Terratec DMX 6FIRE 24/96]]&lt;br /&gt;
*[[Yamaha WX-5 Wind Controller]]&lt;br /&gt;
*[[Alesis DM5]]&lt;br /&gt;
*[[Drum Kit]]&lt;br /&gt;
*[[Foot Controllers]]&lt;br /&gt;
*[[Sintetitzador Roland JV-2080]]&lt;br /&gt;
*[[Sintetitzador Roland JV-1010]]&lt;br /&gt;
*[[Sintetitzador MeeBlip]]&lt;br /&gt;
*[[M-Audio Axiom 25]]&lt;br /&gt;
*[[M-AUDIO MIDAIR]] Midi Wireless System&lt;br /&gt;
*[[Electrònica MIDI]]&lt;br /&gt;
*[[Projectes d'Informàtica Musical]]&lt;br /&gt;
*[[Enllaços Informàtica Musical]]&lt;br /&gt;
*[[Hardware Audio]]&lt;br /&gt;
*[[Altres distribucions Linux orientades a audio]]&lt;br /&gt;
*[[MIDI Clock Sync (How machines stay in sync)]]&lt;br /&gt;
*Projecte 50 Ways to Play Una Plata d'Enciam: [[Llistats_de_maneres_de_tocar_Una_Plata_d'Enciam]]&lt;br /&gt;
*[[OSC: Open Sound Control]]&lt;br /&gt;
*[[Síntesi d'Audio]]&lt;br /&gt;
*[[fer vídeos per al Youtube II]]&lt;br /&gt;
*[[Gravar les veus. Cercant la qualitat]]&lt;br /&gt;
*[[Fitxers MIDI (SMF). Format]]&lt;br /&gt;
*[[Cercant el so de saxofon]]&lt;br /&gt;
*[[Programació/APIs amb C/C++]]&lt;br /&gt;
*[[Música algorísmica]]&lt;br /&gt;
*[[EWI-USB amb la Raspberry Pi]]&lt;br /&gt;
*[[Mopidy-MPD-mpc]]&lt;br /&gt;
&lt;br /&gt;
=Electrònica=&lt;br /&gt;
[[Fitxer:13317017449743365.png|50px]]&lt;br /&gt;
*[[Aplicació inventari.inventari.joanillo.org]]&lt;br /&gt;
*[[Base de dades electrònica]]: http://wikijoan.dyndns.org/electronica/llistar_recursos.php&lt;br /&gt;
*[[enllaços electrònica]]&lt;br /&gt;
*[[Eagle CadSoft]]&lt;br /&gt;
*[[KiCAD i pcb2gcode]]&lt;br /&gt;
*[[fer plaques PCB]]&lt;br /&gt;
*[[fer plaques PCB amb màquina CNC]] (drilling and milling)&lt;br /&gt;
*[[GEDA]]: GEDA: GPL'd suite and toolkit of Electronic Design Automation tools&lt;br /&gt;
*[[Projectes d'Electrònica]]&lt;br /&gt;
*[[Arduino]]&lt;br /&gt;
*[[Arduino: programació dirigida per events]]&lt;br /&gt;
*[[Música amb Arduino]]&lt;br /&gt;
*[[Arduino i HTC Dream]]&lt;br /&gt;
*[[Paperduino]]&lt;br /&gt;
*[[Robot Asuro]]&lt;br /&gt;
*[[Robot Zowi de BQ]]&lt;br /&gt;
*[[cartrobot: robot de cartró amb materials reciclats]]&lt;br /&gt;
*[[Arduino i driver USB]]&lt;br /&gt;
*[[Raspberry Pi]]&lt;br /&gt;
*[[Raspberry Pi: Internet Ràdio]]&lt;br /&gt;
*[[Raspberry Pi. Sensor de temperatura. Domòtica]]&lt;br /&gt;
*[[Raspberry Pi. Programació dels pins GPIO i exapansió dels pins amb I2C. Amb C i C++]]&lt;br /&gt;
*[[Cacera fotogràfica amb Raspberry Pi]]&lt;br /&gt;
*[[fonts d'alimentació, reflexions]]&lt;br /&gt;
*[[Tècniques soldadura/desoldadura]]&lt;br /&gt;
*[[Oscil.loscopi Hameg 203-7]]&lt;br /&gt;
*[[Generador de funcions Promax GF-232]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[Recreatives, Arcade, RetroPlaneta.com]]&lt;br /&gt;
*[[Sistema d'amplificació autònom]]&lt;br /&gt;
*[[Curs MIT: Circuits and Electronics (6.002x)]]&lt;br /&gt;
*[[Simulador de circuits: ngspice, gschem, xcircuit]]&lt;br /&gt;
*[[Simulador de circuits: LTSpice IV]]&lt;br /&gt;
*[[Beagle Board]]&lt;br /&gt;
*[[Pràctiques d'electrònica]]&lt;br /&gt;
*[[Insectes robot]]&lt;br /&gt;
*[[Dispositius USB amb V-USB i microcontroladors AVR]]&lt;br /&gt;
*[[Pinball/milloncete electromecànic]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[FPGAwars]]&lt;br /&gt;
*[[Programador EEPROM amb Arduino]] (programador paral.lel)&lt;br /&gt;
*[[Home-Built Z-80 Computer]]&lt;br /&gt;
*[[Caixa niu, Pep Gener]]&lt;br /&gt;
*[[Makerbuino]]&lt;br /&gt;
*[[Capacitive touch switch]]&lt;br /&gt;
*[[Audiobook]] (TBD)&lt;br /&gt;
*[[Speedometer d'agulla]]&lt;br /&gt;
*[[Rotary encoder]]&lt;br /&gt;
*[[Rètol lluminós amb temporitzador. Regal Maria]]&lt;br /&gt;
*[[Targetes de regal musicals - greeting cards]] (audio recorder module chip)&lt;br /&gt;
*[[Levitació magnètica. Kit]]&lt;br /&gt;
*[[Hard drive motors (brushless, BLDC) using Arduino]]&lt;br /&gt;
*[[Ràdio enllaç Morse]]&lt;br /&gt;
&lt;br /&gt;
=IoT, Internet of Things=&lt;br /&gt;
*[[IoT, Raspberry Pi, RESTful web services]]&lt;br /&gt;
*[[IoT, cursos i apunts]]&lt;br /&gt;
*[[Pràctica IoT: NodeMCU i sensor BME280. Plataforma Thingspeak]]&lt;br /&gt;
*[[NodeRED]]&lt;br /&gt;
*[[Mosquitto MQTT Broker a la RPi]]&lt;br /&gt;
*[[Minigateway LORA d'un canal]]&lt;br /&gt;
*[[Gateway LORA TTN Cat]]&lt;br /&gt;
*[[Node TTN amb TTGO]]&lt;br /&gt;
*[[Node autònom amb alimentació solar, antena DIY, Arduino Pro Micro i transceiver RFM95]]&lt;br /&gt;
*[[Caseta del Pere]]&lt;br /&gt;
&lt;br /&gt;
=Mecànica i bricolatge=&lt;br /&gt;
*[[Funcionament del volant. Wheel steering system]]&lt;br /&gt;
*[[Ensabatillar el saxofon]]&lt;br /&gt;
*[[Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina CNC 3040T]]&lt;br /&gt;
*[[Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Torn DIY (Lathe)]]&lt;br /&gt;
*[[Juego de machos y terrajas]]&lt;br /&gt;
*[[Solenoides]]&lt;br /&gt;
*PCB Holder: http://makerplane.org/?p=1311&lt;br /&gt;
*[[Proveïdors: metall, fusta, etc]]&lt;br /&gt;
*[[Fabricació de molles]]&lt;br /&gt;
*[[Treballar el vidre]]&lt;br /&gt;
*[[Disseny de coffee tables. Idees]]&lt;br /&gt;
*[[Trucos fusteria]]&lt;br /&gt;
*[[Bernissar i pulir la fusta]]&lt;br /&gt;
*[[Màquines i mecanismes]]. Marble machines, kinetic sculpture, perpetual motion, goldberg machines, mecanismes d'escapament, etc.&lt;br /&gt;
*[[Màquina de núvols de sucre]]&lt;br /&gt;
*[[Barco de ràdio control. RC Boat]]&lt;br /&gt;
*[[Idea Hallmark Happy Tappers]] (TBD)&lt;br /&gt;
*[[Cúpules de Leonardo da Vinci]]&lt;br /&gt;
*[[Mordassa per fer marcs]]&lt;br /&gt;
*PCB Holder (TBD)&lt;br /&gt;
*[[Segellar cantons de conglomerat i MDF]]&lt;br /&gt;
*[[Marble Climbing Machine with cardboard]] (regal pel pere, juny 2018)&lt;br /&gt;
&lt;br /&gt;
=Energia solar=&lt;br /&gt;
*[[Curs de la universitat de Delft: DelET.3034TU Solar Energy]]&lt;br /&gt;
*[[Aspectes pràctics instal·lació solar fotovoltaica]]&lt;br /&gt;
&lt;br /&gt;
=Projectes de video=&lt;br /&gt;
*[[Projectes de video]]&lt;br /&gt;
*[[monòlegs]]&lt;br /&gt;
*[[Pyramid hologram]]&lt;br /&gt;
&lt;br /&gt;
=Altres Projectes=&lt;br /&gt;
*[[Conversa amb robot. Combinació TTS i reconeixement de veu]]&lt;br /&gt;
&lt;br /&gt;
=TAMIE=&lt;br /&gt;
*[[TAMIE: Tecnologies Avançades per al Muntatge d'Instal·lacions i Exposicions]]&lt;br /&gt;
&lt;br /&gt;
=50 Ways to Play Una Plata d'Enciam=&lt;br /&gt;
*50 Ways... al blog: [http://www.joanillo.org/?cat=13 http://www.joanillo.org/?cat=13]&lt;br /&gt;
*[[Introducció al projecte 50 Ways to Play Una Plata d'Enciam]]&lt;br /&gt;
*[[fitxers lilypond Una Plata d'Enciam]]&lt;br /&gt;
*[[llistats de maneres de tocar Una Plata d'Enciam]]&lt;br /&gt;
&lt;br /&gt;
=Convocatoria VIDA de la Fundación Telefónica=&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 12.0]]&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 13.0]]&lt;br /&gt;
&lt;br /&gt;
=5 maneres de calcular g (5_ways_2_g)=&lt;br /&gt;
*[[5_ways_2_g]]&lt;br /&gt;
=Twitter robot=&lt;br /&gt;
*[[Twitter API]]&lt;br /&gt;
*[[Twitter robot]]&lt;br /&gt;
&lt;br /&gt;
=Pràctiques de Física amb arduino=&lt;br /&gt;
*[[Idees Pràctiques de Física amb arduino]]&lt;br /&gt;
&lt;br /&gt;
=Manualitats=&lt;br /&gt;
*[[Cartró pedra, Paper Maché]]&lt;br /&gt;
*[[Transfer a fusta]]&lt;br /&gt;
&lt;br /&gt;
=Magical Dolls=&lt;br /&gt;
*[[Idees Magical Dolls]]&lt;br /&gt;
&lt;br /&gt;
=Obres d'art, exposicions, electronic artwork=&lt;br /&gt;
*[[Obres d'art, exposicions, electronic artwork]]&lt;br /&gt;
&lt;br /&gt;
= ToDo =&lt;br /&gt;
*[[ToDo]]&lt;br /&gt;
&lt;br /&gt;
= Altres =&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ How To Geek Ubuntu]&lt;br /&gt;
*[[Aircrack]]&lt;br /&gt;
*[[Configuració router Local]]&lt;br /&gt;
*[[Tutorial Bash]]&lt;br /&gt;
*[[The Computational Beauty of Nature]]&lt;br /&gt;
*[[Notes per a la compra d'un ordinador]]&lt;br /&gt;
*[[Notes per a la compra de hardware a Thomann]]&lt;br /&gt;
*[[ZX Spectrum]]&lt;br /&gt;
*[[LATEX]] (novembre 2018, novembre 2019, maig 2021)&lt;br /&gt;
*[[Portàtil Chuwi Minibook X]], novembre 2024&lt;br /&gt;
&lt;br /&gt;
=Eines per a l'aprenentatge d'idiomes=&lt;br /&gt;
*[[Diccionaris i traductors en consola]]&lt;br /&gt;
*[[Entrenadors de Vocabulari]]&lt;br /&gt;
*[[Entrenador de Vocabulari: LANGUAGE TRAINER (LANGTRAINER)]]&lt;br /&gt;
&lt;br /&gt;
=Artròpodes i Insectes=&lt;br /&gt;
*Artròpodes i Insectes (TBD)&lt;br /&gt;
&lt;br /&gt;
=Màquina AMD Ryzen 7 5800X RTX 5060 Ti=&lt;br /&gt;
*[[Màquina AMD Ryzen 7 5800X RTX 5060 Ti]]&lt;br /&gt;
*[[Ollama: Models locals LLM]]&lt;br /&gt;
&lt;br /&gt;
=Tasques PLN i Tecnologies del Llenguatge=&lt;br /&gt;
* [[STT: Transcripció àudio català (i castellà)]]&lt;br /&gt;
* [[Traducció castellà-català]]&lt;br /&gt;
* [[TTS: Síntesi de veu]]&lt;br /&gt;
&lt;br /&gt;
=Treball Final de Màster (TFM) Màster Tecnologies del Llenguatge=&lt;br /&gt;
* [[RAG. Flux de treball]]&lt;br /&gt;
&lt;br /&gt;
Anirem analitzant per parts cadascun dels components d'un RAG&lt;br /&gt;
* [[RAG: recol·lecció de documents]]&lt;br /&gt;
* [[RAG: split/chunking]] (TODO)&lt;br /&gt;
* [[RAG: embeddings en català]]&lt;br /&gt;
* [[QDrant. Bases de dades semàntiques]]&lt;br /&gt;
* [[RAG: Retrieval]] (TODO)&lt;br /&gt;
* [[RAG: Context]] (TODO)&lt;br /&gt;
* [[RAG: LLM amb Ollama]] (TODO)&lt;br /&gt;
* [[RAG: flux de treball complet, posar-ho tot junt]] (TODO)&lt;br /&gt;
* [[Document 20, per documentar i esborrar]]&lt;br /&gt;
&lt;br /&gt;
=Joan Quintana Compte=&lt;br /&gt;
*[[Curriculum Vitae Joan Quintana Compte]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299233</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299233"/>
		<updated>2026-10-10T21:00:05Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Configuració, primeres tasques. Linux Mint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* ffmpeg: sudo apt install ffmpeg&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
==Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp==&lt;br /&gt;
La única cosa que necessitem és un punt de muntatge, i així tindrem mapejada en el portàtil una carpeta del servidor, i hi podrem accedir com si fos local&lt;br /&gt;
&lt;br /&gt;
En el portàtil instal·lem sshfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install sshfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el portàtil creem un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I muntem el directori de ''projectes/'' del servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja he de veure aquesta carpeta com si fos local.&lt;br /&gt;
&lt;br /&gt;
I ara amb el Sublime Text del portàtil puc treballar amb els fitxers del servidor.&lt;br /&gt;
&lt;br /&gt;
És a dir:&lt;br /&gt;
* /home/joan/projectes és el directori de treball en el servidor IA&lt;br /&gt;
* /home/joan/servidorIA és el punt de muntatge en el portàtil&lt;br /&gt;
&lt;br /&gt;
Repassem les comandes bàsiques de sshfs i scp, tant si treballem en la xarxa local com en la xarxa remota.&lt;br /&gt;
&lt;br /&gt;
Em puc connectar a un servidor via xarxa local o via xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I també sé fer un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i si no es pot muntar perquè el directori no està buit, podem eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf ~/servidorIA/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i aleshores ja podem muntar. O bé millor muntar-ho sense haver d'eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs -o nonempty joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
per desmuntar-lo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fusermount -u ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com faig el scp per enviar fitxers del portàtil al servidor, o del servidor al portàtil?&lt;br /&gt;
&lt;br /&gt;
Del portàtil al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp fitxer.txt joan@192.168.1.184:/home/joan/projectes/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota (fixa't en la -P majúscula, i que va abans de l'origen)&lt;br /&gt;
scp -P 2222 fitxer.txt joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Del servidor al portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp joan@192.168.1.184:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota&lt;br /&gt;
scp -P 2222 joan@79.156.157.3:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carpetes senceres: afegim -r (recursiu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -r -P 2222 ~/meu_projecte joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
===Execució pràctica PyTorch===&lt;br /&gt;
vull executar la pràctica d'IA del mòdul: 5073-EAC6-2627S1&lt;br /&gt;
&lt;br /&gt;
portàtil:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp cifar10.zip joan@192.168.1.184:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip cifar10.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i segons les instruccions del README:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd cifar10&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate        # Linux / macOS&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
pip install -r requirements.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i executem el projecte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 -m src.main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per tal de veure la VRAM que consumeix la RTX5060, en un altre terminar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@192.168.1.184&lt;br /&gt;
$ watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299232</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299232"/>
		<updated>2026-10-10T20:59:16Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
==Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp==&lt;br /&gt;
La única cosa que necessitem és un punt de muntatge, i així tindrem mapejada en el portàtil una carpeta del servidor, i hi podrem accedir com si fos local&lt;br /&gt;
&lt;br /&gt;
En el portàtil instal·lem sshfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install sshfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el portàtil creem un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I muntem el directori de ''projectes/'' del servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja he de veure aquesta carpeta com si fos local.&lt;br /&gt;
&lt;br /&gt;
I ara amb el Sublime Text del portàtil puc treballar amb els fitxers del servidor.&lt;br /&gt;
&lt;br /&gt;
És a dir:&lt;br /&gt;
* /home/joan/projectes és el directori de treball en el servidor IA&lt;br /&gt;
* /home/joan/servidorIA és el punt de muntatge en el portàtil&lt;br /&gt;
&lt;br /&gt;
Repassem les comandes bàsiques de sshfs i scp, tant si treballem en la xarxa local com en la xarxa remota.&lt;br /&gt;
&lt;br /&gt;
Em puc connectar a un servidor via xarxa local o via xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I també sé fer un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i si no es pot muntar perquè el directori no està buit, podem eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf ~/servidorIA/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i aleshores ja podem muntar. O bé millor muntar-ho sense haver d'eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs -o nonempty joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
per desmuntar-lo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fusermount -u ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com faig el scp per enviar fitxers del portàtil al servidor, o del servidor al portàtil?&lt;br /&gt;
&lt;br /&gt;
Del portàtil al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp fitxer.txt joan@192.168.1.184:/home/joan/projectes/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota (fixa't en la -P majúscula, i que va abans de l'origen)&lt;br /&gt;
scp -P 2222 fitxer.txt joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Del servidor al portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp joan@192.168.1.184:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota&lt;br /&gt;
scp -P 2222 joan@79.156.157.3:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carpetes senceres: afegim -r (recursiu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -r -P 2222 ~/meu_projecte joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
===Execució pràctica PyTorch===&lt;br /&gt;
vull executar la pràctica d'IA del mòdul: 5073-EAC6-2627S1&lt;br /&gt;
&lt;br /&gt;
portàtil:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp cifar10.zip joan@192.168.1.184:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip cifar10.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i segons les instruccions del README:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd cifar10&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate        # Linux / macOS&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
pip install -r requirements.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i executem el projecte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 -m src.main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per tal de veure la VRAM que consumeix la RTX5060, en un altre terminar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@192.168.1.184&lt;br /&gt;
$ watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=STT:_Transcripci%C3%B3_%C3%A0udio_catal%C3%A0_(i_castell%C3%A0)&amp;diff=299231</id>
		<title>STT: Transcripció àudio català (i castellà)</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=STT:_Transcripci%C3%B3_%C3%A0udio_catal%C3%A0_(i_castell%C3%A0)&amp;diff=299231"/>
		<updated>2026-10-10T20:00:55Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Recordatori punt de muntatge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Whisper=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6aac108b-6940-83eb-9972-d8f7e76eefa2&lt;br /&gt;
&lt;br /&gt;
ho hem de fer en un venv:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir model-whisper&lt;br /&gt;
cd model-whisper&lt;br /&gt;
python3 -m venv whisper-env&lt;br /&gt;
source whisper-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
() pip install -U pip&lt;br /&gt;
() pip install -U openai-whisper&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i ara ja podem fer una transcripció:&lt;br /&gt;
&lt;br /&gt;
==Recordatori punt de muntatge==&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount | grep servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
si no està muntat el muntem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
$ sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i si no es pot muntar perquè el directori no està buit, podem eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf ~/servidorIA/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i aleshores ja podem muntar. O bé millor muntar-ho sense haver d'eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs -o nonempty joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
per desmuntar-lo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fusermount -u ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i en el servidor copiem el wav de la carpeta compartida al directori de treball:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mv /home/joan/projectes/t0001.wav .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Executar whisper==&lt;br /&gt;
I ara ja podem fer la transcripció:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
whisper t0001.wav --language Catalan --model turbo&lt;br /&gt;
&lt;br /&gt;
100%|██████████████████████████████████████| 1.51G/1.51G [00:14&amp;lt;00:00, 114MiB/s]&lt;br /&gt;
[00:00.000 --&amp;gt; 00:01.160]  Gràcies per ser amb nosaltres.&lt;br /&gt;
[00:01.760 --&amp;gt; 00:02.040]  Hola.&lt;br /&gt;
[00:02.280 --&amp;gt; 00:06.400]  Helen, pot ser un problema ser crònicament amables i complements?&lt;br /&gt;
[00:07.100 --&amp;gt; 00:10.580]  Sí, perquè quan parlem de ser crònicament amables i complements&lt;br /&gt;
[00:10.580 --&amp;gt; 00:14.160]  estem parlant que ens estem traient a nosaltres&lt;br /&gt;
[00:14.160 --&amp;gt; 00:17.600]  perquè són persones que no sabem mai escoltar-nos.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
whisper t0001.wav --language Catalan --model turbo --output_format txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Amb un script python: ''prova_whisper.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import whisper&lt;br /&gt;
&lt;br /&gt;
model = whisper.load_model(&amp;quot;turbo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
result = model.transcribe(&lt;br /&gt;
    &amp;quot;t0001.wav&amp;quot;,&lt;br /&gt;
    language=&amp;quot;ca&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
print(result[&amp;quot;text&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 prova_whisper.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I una cosa important si el que busques és català amb la màxima qualitat&lt;br /&gt;
&lt;br /&gt;
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à.&lt;br /&gt;
&lt;br /&gt;
Per instal·lar aquest model:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
() pip install torch transformers accelerate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
creem el fitxer ''transcribe.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
from transformers import pipeline&lt;br /&gt;
&lt;br /&gt;
model_name = &amp;quot;projecte-aina/whisper-large-v3-ca-3catparla&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pipe = pipeline(&lt;br /&gt;
    &amp;quot;automatic-speech-recognition&amp;quot;,&lt;br /&gt;
    model=model_name,&lt;br /&gt;
    device=0 if torch.cuda.is_available() else -1,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
result = pipe(&amp;quot;t0001.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(result[&amp;quot;text&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 transcribe.py &lt;br /&gt;
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.&lt;br /&gt;
config.json: 100%|█████████████████████████████████████████████████████████████████████████████████| 1.35k/1.35k [00:00&amp;lt;00:00, 6.20MB/s]&lt;br /&gt;
pytorch_model.bin.index.json: 100%|██████████████████████████████████████████████████████████████████| 112k/112k [00:00&amp;lt;00:00, 35.7MB/s]&lt;br /&gt;
model.safetensors.index.json: 100%|███████████████████████████████████████████████████&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
el primer que fa és descarregar el model&lt;br /&gt;
&lt;br /&gt;
ValueError: You have passed more than 3000 mel input features (&amp;gt; 30 seconds) which automatically enables long-form generation&lt;br /&gt;
&lt;br /&gt;
(li he passat un àudio de més de 30 segons, però funcionaria).&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=STT:_Transcripci%C3%B3_%C3%A0udio_catal%C3%A0_(i_castell%C3%A0)&amp;diff=299230</id>
		<title>STT: Transcripció àudio català (i castellà)</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=STT:_Transcripci%C3%B3_%C3%A0udio_catal%C3%A0_(i_castell%C3%A0)&amp;diff=299230"/>
		<updated>2026-10-10T20:00:28Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Whisper=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6aac108b-6940-83eb-9972-d8f7e76eefa2&lt;br /&gt;
&lt;br /&gt;
ho hem de fer en un venv:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir model-whisper&lt;br /&gt;
cd model-whisper&lt;br /&gt;
python3 -m venv whisper-env&lt;br /&gt;
source whisper-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
() pip install -U pip&lt;br /&gt;
() pip install -U openai-whisper&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i ara ja podem fer una transcripció:&lt;br /&gt;
&lt;br /&gt;
==Recordatori punt de muntatge==&lt;br /&gt;
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:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount | grep servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
si no està muntat el muntem:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
$ sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i si no es pot muntar perquè el directori no està buit, podem eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf ~/servidorIA/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i aleshores ja podem muntar. O bé millor muntar-ho sense haver d'eliminar el contingut:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs -o nonempty joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
per desmuntar-lo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fusermount -u ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i en el servidor copiem el wav de la carpeta compartida al directori de treball:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mv /home/joan/projectes/t0001.wav .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja podem fer la transcripció:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
whisper t0001.wav --language Catalan --model turbo&lt;br /&gt;
&lt;br /&gt;
100%|██████████████████████████████████████| 1.51G/1.51G [00:14&amp;lt;00:00, 114MiB/s]&lt;br /&gt;
[00:00.000 --&amp;gt; 00:01.160]  Gràcies per ser amb nosaltres.&lt;br /&gt;
[00:01.760 --&amp;gt; 00:02.040]  Hola.&lt;br /&gt;
[00:02.280 --&amp;gt; 00:06.400]  Helen, pot ser un problema ser crònicament amables i complements?&lt;br /&gt;
[00:07.100 --&amp;gt; 00:10.580]  Sí, perquè quan parlem de ser crònicament amables i complements&lt;br /&gt;
[00:10.580 --&amp;gt; 00:14.160]  estem parlant que ens estem traient a nosaltres&lt;br /&gt;
[00:14.160 --&amp;gt; 00:17.600]  perquè són persones que no sabem mai escoltar-nos.&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
whisper t0001.wav --language Catalan --model turbo --output_format txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Amb un script python: ''prova_whisper.py'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import whisper&lt;br /&gt;
&lt;br /&gt;
model = whisper.load_model(&amp;quot;turbo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
result = model.transcribe(&lt;br /&gt;
    &amp;quot;t0001.wav&amp;quot;,&lt;br /&gt;
    language=&amp;quot;ca&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
print(result[&amp;quot;text&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 prova_whisper.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I una cosa important si el que busques és català amb la màxima qualitat&lt;br /&gt;
&lt;br /&gt;
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à.&lt;br /&gt;
&lt;br /&gt;
Per instal·lar aquest model:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
() pip install torch transformers accelerate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
creem el fitxer ''transcribe.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
from transformers import pipeline&lt;br /&gt;
&lt;br /&gt;
model_name = &amp;quot;projecte-aina/whisper-large-v3-ca-3catparla&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pipe = pipeline(&lt;br /&gt;
    &amp;quot;automatic-speech-recognition&amp;quot;,&lt;br /&gt;
    model=model_name,&lt;br /&gt;
    device=0 if torch.cuda.is_available() else -1,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
result = pipe(&amp;quot;t0001.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(result[&amp;quot;text&amp;quot;])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 transcribe.py &lt;br /&gt;
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.&lt;br /&gt;
config.json: 100%|█████████████████████████████████████████████████████████████████████████████████| 1.35k/1.35k [00:00&amp;lt;00:00, 6.20MB/s]&lt;br /&gt;
pytorch_model.bin.index.json: 100%|██████████████████████████████████████████████████████████████████| 112k/112k [00:00&amp;lt;00:00, 35.7MB/s]&lt;br /&gt;
model.safetensors.index.json: 100%|███████████████████████████████████████████████████&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
el primer que fa és descarregar el model&lt;br /&gt;
&lt;br /&gt;
ValueError: You have passed more than 3000 mel input features (&amp;gt; 30 seconds) which automatically enables long-form generation&lt;br /&gt;
&lt;br /&gt;
(li he passat un àudio de més de 30 segons, però funcionaria).&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=STT:_Transcripci%C3%B3_%C3%A0udio_catal%C3%A0_(i_castell%C3%A0)&amp;diff=299229</id>
		<title>STT: Transcripció àudio català (i castellà)</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=STT:_Transcripci%C3%B3_%C3%A0udio_catal%C3%A0_(i_castell%C3%A0)&amp;diff=299229"/>
		<updated>2026-10-10T18:27:12Z</updated>

		<summary type="html">&lt;p&gt;Joan: Es crea la pàgina amb «__TOC__ &amp;lt;pre&amp;gt; https://chatgpt.com/c/6aac108b-6940-83eb-9972-d8f7e76eefa2  sudo apt install ffmpeg  ho hem de fer en un venv:  mkdir model-whisper cd model-whisper pyth...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://chatgpt.com/c/6aac108b-6940-83eb-9972-d8f7e76eefa2&lt;br /&gt;
&lt;br /&gt;
sudo apt install ffmpeg&lt;br /&gt;
&lt;br /&gt;
ho hem de fer en un venv:&lt;br /&gt;
&lt;br /&gt;
mkdir model-whisper&lt;br /&gt;
cd model-whisper&lt;br /&gt;
python3 -m venv whisper-env&lt;br /&gt;
source whisper-env/bin/activate&lt;br /&gt;
&lt;br /&gt;
() pip install -U pip&lt;br /&gt;
() pip install -U openai-whisper&lt;br /&gt;
&lt;br /&gt;
i ara ja podem fer una transcripció:&lt;br /&gt;
per posar el fitxer t0001.wav al servidor, recordem que tenim una unitat muntada en el portàtil: ~/servidorIA&lt;br /&gt;
&lt;br /&gt;
hem de mirar si ja el tenim muntat:&lt;br /&gt;
mount | grep servidorIA&lt;br /&gt;
&lt;br /&gt;
si no està muntat el muntem:&lt;br /&gt;
$ sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
$ sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&lt;br /&gt;
i si no es pot muntar perquè el directori no està buit, podem eliminar el contingut:&lt;br /&gt;
rm -rf ~/servidorIA/*&lt;br /&gt;
&lt;br /&gt;
i aleshores ja podem muntar&lt;br /&gt;
&lt;br /&gt;
o bé millor muntar-ho sense haver d'eliminar el contingut:&lt;br /&gt;
sshfs -o nonempty joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&lt;br /&gt;
per desmuntar-lo:&lt;br /&gt;
fusermount -u ~/servidorIA&lt;br /&gt;
&lt;br /&gt;
i en el servidor:&lt;br /&gt;
$ mv /home/joan/projectes/t0001.wav .&lt;br /&gt;
whisper t0001.wav --language Catalan --model turbo&lt;br /&gt;
100%|██████████████████████████████████████| 1.51G/1.51G [00:14&amp;lt;00:00, 114MiB/s]&lt;br /&gt;
[00:00.000 --&amp;gt; 00:01.160]  Gràcies per ser amb nosaltres.&lt;br /&gt;
[00:01.760 --&amp;gt; 00:02.040]  Hola.&lt;br /&gt;
[00:02.280 --&amp;gt; 00:06.400]  Helen, pot ser un problema ser crònicament amables i complements?&lt;br /&gt;
[00:07.100 --&amp;gt; 00:10.580]  Sí, perquè quan parlem de ser crònicament amables i complements&lt;br /&gt;
[00:10.580 --&amp;gt; 00:14.160]  estem parlant que ens estem traient a nosaltres&lt;br /&gt;
[00:14.160 --&amp;gt; 00:17.600]  perquè són persones que no sabem mai escoltar-nos.&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
whisper t0001.wav --language Catalan --model turbo --output_format txt&lt;br /&gt;
&lt;br /&gt;
amb un script python: prova_whisper.py:&lt;br /&gt;
&lt;br /&gt;
import whisper&lt;br /&gt;
&lt;br /&gt;
model = whisper.load_model(&amp;quot;turbo&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
result = model.transcribe(&lt;br /&gt;
    &amp;quot;t0001.wav&amp;quot;,&lt;br /&gt;
    language=&amp;quot;ca&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
print(result[&amp;quot;text&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
$ python3 prova_whisper.py&lt;br /&gt;
&lt;br /&gt;
I una cosa important si el que busques és català amb la màxima qualitat&lt;br /&gt;
&lt;br /&gt;
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à.&lt;br /&gt;
&lt;br /&gt;
Per instal·lar aquest model:&lt;br /&gt;
() pip install torch transformers accelerate&lt;br /&gt;
&lt;br /&gt;
creem el fitxer nano transcribe.py:&lt;br /&gt;
&lt;br /&gt;
import torch&lt;br /&gt;
from transformers import pipeline&lt;br /&gt;
&lt;br /&gt;
model_name = &amp;quot;projecte-aina/whisper-large-v3-ca-3catparla&amp;quot;&lt;br /&gt;
&lt;br /&gt;
pipe = pipeline(&lt;br /&gt;
    &amp;quot;automatic-speech-recognition&amp;quot;,&lt;br /&gt;
    model=model_name,&lt;br /&gt;
    device=0 if torch.cuda.is_available() else -1,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
result = pipe(&amp;quot;t0001.wav&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
print(result[&amp;quot;text&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
$ python3 transcribe.py &lt;br /&gt;
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.&lt;br /&gt;
config.json: 100%|█████████████████████████████████████████████████████████████████████████████████| 1.35k/1.35k [00:00&amp;lt;00:00, 6.20MB/s]&lt;br /&gt;
pytorch_model.bin.index.json: 100%|██████████████████████████████████████████████████████████████████| 112k/112k [00:00&amp;lt;00:00, 35.7MB/s]&lt;br /&gt;
model.safetensors.index.json: 100%|███████████████████████████████████████████████████&lt;br /&gt;
...&lt;br /&gt;
el primer que fa és descarregar el model&lt;br /&gt;
&lt;br /&gt;
ValueError: You have passed more than 3000 mel input features (&amp;gt; 30 seconds) which automatically enables long-form generation&lt;br /&gt;
(li he passat un àudio de més de 30 segons, però funcionaria).&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{Autor}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299228</id>
		<title>Joanillo mediawiki: INS Jaume Balmes</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299228"/>
		<updated>2026-10-10T18:26:30Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Tasques PLN i Tecnologies del Llenguatge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per qualsevol consulta, enviar un mail a [mailto:joanqc_arroba_gmail_dot_com Joan Quintana]&lt;br /&gt;
=DAW. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[DAW-M06-WEC]]. Desenvolupament d'Aplicacions Web (DAW)&lt;br /&gt;
=ASIX. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[ASIX-M09-IAW]]. Implantació d'Aplicacions Web (ASIX)&lt;br /&gt;
*[[ASIX-M10-UF2]]. Amplantació de Bases de dades (ASIX)&lt;br /&gt;
&lt;br /&gt;
=FP Informàtica: Contingut antic=&lt;br /&gt;
*[[Servidor BBDD]]&lt;br /&gt;
*[[ASIX-M11-SAD]]. Seguretat i Alta Disponibilitat&lt;br /&gt;
*[[DAI-C8-EC]]&lt;br /&gt;
*[[ASI-C6-ASGBD]]&lt;br /&gt;
*[[ASI-C3-IAIG]]&lt;br /&gt;
*[[Assignatura PHP]]&lt;br /&gt;
*[[LPI: Linux Professional Institute]]&lt;br /&gt;
*[[Normativa d'aula. Exemples]]&lt;br /&gt;
*[[Aula 44 (Ubuntu). Configuració]]&lt;br /&gt;
*[[Enviar notes als alumnes, fitxer CSV]]&lt;br /&gt;
*[[Extraescolar Robòtica 2015-2016]]&lt;br /&gt;
*[[Extraescolar Robòtica 2016-2017]] (Construcció d'un SIMON)&lt;br /&gt;
&lt;br /&gt;
= HowTo Ubuntu =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Alias]]&lt;br /&gt;
*Cercar fitxers amb find: https://help.ubuntu.com/community/find&lt;br /&gt;
*[[Cercar dins dels fitxers]] (i carpetes amb més fitxers)&lt;br /&gt;
*Expressions regulars: [[Expressions_Regulars]]&lt;br /&gt;
*[[Usuaris i grups]]&lt;br /&gt;
*[[Instal·lació Tomcat#Quant a les variables d'entorn]]&lt;br /&gt;
*[[Tips Linux]]&lt;br /&gt;
*'''Editors''': sudo apt-get install joe i sudo apt-get install scite. scite és l'equivalent al Notepad++ (de fet, el Notepad++ es basa en el scite)&lt;br /&gt;
*[[Màscara umask]]&lt;br /&gt;
*[[Establir l'hora del sistema]]&lt;br /&gt;
*Comprimir i descomprimir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar czvf fitxer_comprimit.tgz fitxer1.txt fitxer2.txt dir1 dir2&lt;br /&gt;
tar xvzf fitxer_comprimit.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Releases d'Ubuntu: es pot veure una taula a http://en.wikipedia.org/wiki/Ubuntu&lt;br /&gt;
*[[holamon amb diferents llenguatges de programació]]&lt;br /&gt;
*Per redirigir la sortida d'errors d'una comanda a fitxer: make 2&amp;gt; error.log&lt;br /&gt;
*utilitzar apt-get amb un proxy (institut): &lt;br /&gt;
Editem el fitxer /etc/apt/apt.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Acquire::http::Proxy &amp;quot;http://192.168.0.5:8080&amp;quot;; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També: You can also set a proxy on the fly via a console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export http_proxy=&amp;quot;http://proxy&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you apt/aptitude... etc. from that console, it will use the specified proxy.&lt;br /&gt;
*comanda history (documentar)&lt;br /&gt;
*executar processos en background (&amp;amp;). http://www.networkdictionary.com/software/Linux331.php. (documentar)&lt;br /&gt;
*Trobar informació del processador:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
$ cat /proc/cpuinfo | grep MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Consum de memòria (ordenat per processos que consumeien més memòria):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ps --sort -rss -eo rss,pid,command | head&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===utilitats===&lt;br /&gt;
*[[bc: calculadora CLI]]&lt;br /&gt;
*'''pdftotext''': pdf to text, fa una conversió intel.ligent, de manera que el resultat queda bastant ben formatat. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pdftotext [options] &amp;lt;PDF-file&amp;gt; [&amp;lt;text-file&amp;gt;]&lt;br /&gt;
$ pdftotext -nopgbrk /home/joan/.aMule/Incoming/physical_computing.pdf /home/joan/.aMule/Incoming/physical_computing.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Convertir un CD a mp3''':&lt;br /&gt;
http://installubuntu.blogspot.com/2006/09/como-convertir-cd-mp3.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install sound-juicer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el menú està a Aplicaciones &amp;gt; Sonido y vídeo &amp;gt; Extractor de sonidos de CD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Luego de abrir el programa que se encuentra en &amp;quot;Aplicaciones - sonido y vídeo - Extractor de música de CD's Sound juicer&amp;quot; debe seguir los siguientes pasos:&lt;br /&gt;
1. Ir a Editar - preferencias.&lt;br /&gt;
2. Hacer clic en el botón editar perfiles (abajo-derecha).&lt;br /&gt;
3. Crear un nuevo Profile haciendo clic en &amp;quot;Nuevo&amp;quot;.&lt;br /&gt;
4. Puede colocar el siguiente Nombre de perfil: Calidad de CD, con pérdida mp3.&lt;br /&gt;
5. Luego seleccionarlo y editarlo colocar en Descripción del perfil: Extracción MP3.&lt;br /&gt;
6. En Tubería Gstreamer copiar y pegar lo siguiente:&lt;br /&gt;
audio/x-raw-int,rate=44100,channels=2 ! lame name=enc&lt;br /&gt;
7. Digitar en &amp;quot;Extensión de archivo&amp;quot;: MP3&lt;br /&gt;
8. Seleccionar ¿Está activo?&lt;br /&gt;
9. Hacer clic en Aceptar, luego en &amp;quot;Cerrar&amp;quot; las dos veces siguientes y por último &amp;quot;Cerrar&amp;quot; el programa.&lt;br /&gt;
10. Volver a abrir Sound Juice, e ir a &amp;quot;Editar - Preferencia&amp;quot; y seleccionar en &amp;quot;Formato de salida&amp;quot; &amp;quot;calidad de cd, con pérdida mp3 (audio mp3)&lt;br /&gt;
- y por último cerrar.&lt;br /&gt;
De aquí en adelante debe convertir los CD's a MP3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Buidar la paperera de reciclatge''': important quan m'he quedat sense espai:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo rm -rf ~/.Trash/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per saber quines són les carpetes que ocupen més espai: '''ncdu''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install ncdu&lt;br /&gt;
$ ncdu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Passar de format DVD a mp4''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat *.VOB &amp;gt; movie.vob&lt;br /&gt;
$ ffmpeg -i movie.vob video.mp4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Utilitats de xarxa===&lt;br /&gt;
'''iperf''' per comprovar la velocitat real de xarxa entre dos punts.&lt;br /&gt;
*https://www.linode.com/docs/networking/diagnostics/install-iperf-to-diagnose-network-speed-in-linux/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install iperf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
iPerf requires two systems because one system must act as a server, while the other acts as a client. The client connects to the server you're testing the speed of.&lt;br /&gt;
&lt;br /&gt;
On the node you plan to test, launch iPerf in server mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On your second node, connect to the first. Replace 198.51.100.5 with the first node’s IP address.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -c 192.168.0.116&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
Server listening on TCP port 5001&lt;br /&gt;
TCP window size: 85.3 KByte (default)&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
[  4] local 192.168.0.116 port 5001 connected with 192.168.0.240 port 51900&lt;br /&gt;
[ ID] Interval       Transfer     Bandwidth&lt;br /&gt;
[  4]  0.0-10.0 sec   113 MBytes  94.1 Mbits/sec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per tant la meva connexió és de 100 Mbits/sec (no arriba al teòric de 100).&lt;br /&gt;
&lt;br /&gt;
Si vull testejar un cable llarg per assegurar-me de què el seu rendiment és correcte, en un lloc on no hi ha connexió de xarxa, necessito dos portàtils amb IP fixa. Com que el cable és normal (no creuat), i per fer el test directe necessito un cable creuat, el que he de fer és dues possibilitats:&lt;br /&gt;
*empalmar un tros curt de cable creuat, i així el cable no creuat es converteix en creuat.&lt;br /&gt;
*utilitzar un switch/router, i posar el cable llarg al router, i un altre tros de cable normal també al router des de l'altre portàtil.&lt;br /&gt;
'''NOTA''': ara hi ha targetes de xarxa que poden treballar tant en cables creuats com no creuats.&lt;br /&gt;
===velocitat de la connexió inal·làmbrica (juny 2019)===&lt;br /&gt;
*https://www.cyberciti.biz/tips/linux-find-out-wireless-network-speed-signal-strength.html&lt;br /&gt;
Llista totes les xarxes wifi visibles:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Millor filtrar per la que ens interessa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi | grep JaumeBalmes&lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  79      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  65      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  11    54 Mbit/s  42      ▂▄__  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  12    54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  19      ▂___  WPA1 WPA2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iwconfig wlp1s0 | grep -i --color signal&lt;br /&gt;
Link Quality=45/70  Signal level=-65 dBm &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ watch -n 1 cat /proc/net/wireless&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conèixer especificacions del sistema===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -m&lt;br /&gt;
i686 -&amp;gt; 32 bits&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
...&lt;br /&gt;
model name	: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
arquitectura i kernel version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -r&lt;br /&gt;
3.2.0-49-generic-pae&lt;br /&gt;
&lt;br /&gt;
$ uname -a&lt;br /&gt;
Linux joan-poratolí gamer: Mars Gaming MM018rtatil 3.2.0-49-generic-pae #75-Ubuntu SMP Tue Jun 18 18:00:21 UTC 2013 i686 i686 i386 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lscpu&lt;br /&gt;
Architecture:          i686&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo lshw -c processor&lt;br /&gt;
  *-cpu:0                 &lt;br /&gt;
       description: CPU&lt;br /&gt;
       product: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
       vendor: Intel Corp.&lt;br /&gt;
       physical id: 5&lt;br /&gt;
       bus info: cpu@0&lt;br /&gt;
       version: 6.5.5&lt;br /&gt;
       serial: 0002-0655-0000-0000-0000-0000&lt;br /&gt;
       slot: U2E1&lt;br /&gt;
       size: 1199MHz&lt;br /&gt;
       capacity: 2400MHz&lt;br /&gt;
...ratolí gamer: Mars Gaming MM018&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
memòria:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ free&lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:       3980780    1925680    2055100          0     141292     882996&lt;br /&gt;
-/+ buffers/cache:     901392    3079388&lt;br /&gt;
Swap:      4049916          0    4049916&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/meminfo |grep MemTotal&lt;br /&gt;
MemTotal:    ratolí gamer: Mars Gaming MM018    3980780 kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ vmstat -s&lt;br /&gt;
      3980780 K total memory&lt;br /&gt;
      1901032 K used memory&lt;br /&gt;
       878692 K active memory&lt;br /&gt;
       829180 K inactive memory&lt;br /&gt;
      2079748 K free memory&lt;br /&gt;
       141428 K buffer memory&lt;br /&gt;
       895400 K swap cache&lt;br /&gt;
      4049916 K total swap&lt;br /&gt;
            0 K used swap&lt;br /&gt;
      4049916 K free swap&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===ratolí gamer: Mars Gaming MM018===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://askubuntu.com/questions/19569/how-can-i-assign-actions-to-all-my-mouse-buttons&lt;br /&gt;
per saber quins botons del ratolí es reconeixen:&lt;br /&gt;
$ xev&lt;br /&gt;
&lt;br /&gt;
Per mapejar:&lt;br /&gt;
sudo apt-get install xbindkeys&lt;br /&gt;
&lt;br /&gt;
https://wiki.archlinux.org/index.php/Xbindkeys&lt;br /&gt;
&lt;br /&gt;
$ xbindkeys&lt;br /&gt;
Error : /home/joan/.xbindkeysrc not found or reading not allowed.&lt;br /&gt;
please, create one with 'xbindkeys --defaults &amp;gt; /home/joan/.xbindkeysrc'.&lt;br /&gt;
or, if you want scheme configuration style,&lt;br /&gt;
with 'xbindkeys --defaults-guile &amp;gt; /home/joan/.xbindkeysrc.scm'.&lt;br /&gt;
&lt;br /&gt;
xfce4-terminal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;xterm&amp;quot;do&lt;br /&gt;
#  control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot; control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot;&lt;br /&gt;
    m:0x4 + c:37&lt;br /&gt;
    Control + Control_L &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Command&amp;quot;&lt;br /&gt;
    m:0x3 + c:50&lt;br /&gt;
    Shift + Shift_L &lt;br /&gt;
&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
(TBD)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SHELL===&lt;br /&gt;
*[[Manuals de bash]]&lt;br /&gt;
*[[Script per a crear usuaris]]&lt;br /&gt;
*[[Canviar el prompt per defecte]]&lt;br /&gt;
*[[Truquets bash]]&lt;br /&gt;
*[[xclip. Portapapers, clipboard]]&lt;br /&gt;
*[[xdotool - command-line X11 automation tool]]&lt;br /&gt;
*Fer sudo sense demanar password (Ubuntu 12.04):&lt;br /&gt;
# User privilege specification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amb aquesta comanda estem editant el fitxer /etc/sudoers. Es tracta de posar ''NOPASSWD:'' per tal de què no demani pwd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
root    ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
&lt;br /&gt;
# Members of the admin group may gain root privileges&lt;br /&gt;
%admin ALL=(ALL) ALL&lt;br /&gt;
&lt;br /&gt;
# Allow members of group sudo to execute any command&lt;br /&gt;
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paquets ===&lt;br /&gt;
*[[Instal·lar paquets]]&lt;br /&gt;
=== Grub2 ===&lt;br /&gt;
*[[Grub2]]&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració d'Apache amb Ubuntu]]&lt;br /&gt;
*[[Virtual Host: www.empresalibre.org, wiki.empresalibre.org, blog.empresalibre.org]]&lt;br /&gt;
*[[AWStats: analitzant les estadístiques]]&lt;br /&gt;
*[[Hosting projecte. Possibilitats]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració de Postgres]]&lt;br /&gt;
*[[Còpies de seguretat de Postgres I]]: pg_dump (és el que utilizo per fer els scripts de còpia de seguretat)&lt;br /&gt;
*[[Còpies de seguretat de Postgres II]]: Còpia física del directori data/&lt;br /&gt;
*[[Còpies de seguretat de Postgres III]]: Point-In-Time-Recovery, PITR&lt;br /&gt;
*[[Pràctiques de còpia de seguretat Postgres]]&lt;br /&gt;
*[[PHP-PostgreSQL Functions: programació PHP. Procediments]]&lt;br /&gt;
*[[Teoria PL/pgSQL]]&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Instal·lació Mysql]]&lt;br /&gt;
*[[crear base de dades i usuari per a alumnes]]&lt;br /&gt;
*How To (xuleta) de Mysql per als alumnes: [[Sistemes_Gestors_de_Bases_de_Dades._MySQL._Instal·laci%C3%B3%2C_configuraci%C3%B3_i_%C3%BAs]]&lt;br /&gt;
*[[Optimitzar les taules del Mysql]]&lt;br /&gt;
*[[Mysql cluster]]&lt;br /&gt;
&lt;br /&gt;
=== BD alternatives ===&lt;br /&gt;
*[[SQLite]]&lt;br /&gt;
*[[CouchDB]]&lt;br /&gt;
*[[Curs MongoDB 2014 al PUE]]. http://www.mongodb.org/&lt;br /&gt;
&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració de Samba]]&lt;br /&gt;
=== Servidor DNS (BIND9) ===&lt;br /&gt;
*[[Servidor DNS (BIND9)]]&lt;br /&gt;
=== DynDNS (i noip) (i OVH)===&lt;br /&gt;
*[[DynDNS]]&lt;br /&gt;
*[[Configurar un servidor virutal amb l'Apache]]&lt;br /&gt;
*[[Domini públic amb IP dinàmica]]&lt;br /&gt;
*[[update Abril 2014. noip.com]]&lt;br /&gt;
*[[Migració del servidor joanillo.org a OVH Cloud (núvol)]] (setembre 2020)&lt;br /&gt;
*[[Certificats SSL amb certbot]]&lt;br /&gt;
*[[OVH. VPS Essential jaumebalmes.net]]&lt;br /&gt;
&lt;br /&gt;
=== rsync ===&lt;br /&gt;
*[[rsync]]&lt;br /&gt;
=== Instal·lació Java ===&lt;br /&gt;
*[[Instal·lació Java]]&lt;br /&gt;
*[[Pràctica Hola món]]&lt;br /&gt;
*[[Connexió Java-MySQL bàsica]] (maig 2022)&lt;br /&gt;
&lt;br /&gt;
=== Mediawiki ===&lt;br /&gt;
*[[Instal·lació Mediawiki]]&lt;br /&gt;
*[[xuleta MediaWiki]]&lt;br /&gt;
*[[Protegir automaticament les pàgines - hack mediawiki]]&lt;br /&gt;
*[[Habilitar upload per a imatges i pdf, etc]] (i tar.gz)&lt;br /&gt;
*[[Editar la plantilla d'impressió]]&lt;br /&gt;
*[[Editar la plantilla normal]]&lt;br /&gt;
*[http://meta.wikimedia.org/wiki/MediaWiki_FAQ MediaWiki FAQ]&lt;br /&gt;
*[[Extra Edit Buttons]]&lt;br /&gt;
*[[Còpia de seguretat]]&lt;br /&gt;
*[[Namespaces, plantilles i categories al Mediawiki]]&lt;br /&gt;
*[[Categories definides al meu mediawiki]]&lt;br /&gt;
*[[Hack mediawiki: ficant una entrada des del MySQL]]&lt;br /&gt;
*[[mediawiki sidebar]]&lt;br /&gt;
*[[Extension:SphinxSearch]]: millorar les cerques&lt;br /&gt;
*mediawiki a http://wiki.empresalibre.org, http://wikijoan.dyndns.org, http://localhost/wiki, http://192.168.1.130/wiki: està explicat a [[Virtual_Host:_www.empresalibre.org%2C_wiki.empresalibre.org%2C_blog.empresalibre.org#Configuraci.C3.B3_MediaWiki]]&lt;br /&gt;
*[[cache del mediawiki]]&lt;br /&gt;
*[[Estadístiques d'activitat. Procedures amb MySQL]]&lt;br /&gt;
*[[error: Table './wikidb/searchindex' is marked as crashed]]&lt;br /&gt;
*[[combatre el spam en una mediawiki]]&lt;br /&gt;
*[[Atac wikijoan 29-01-2012]]&lt;br /&gt;
*[[Fórmules matemàtiques amb Latex]]&lt;br /&gt;
*[[(SQL) Recuperar el text d'una pàgina a partir del títol de la pàgina]]&lt;br /&gt;
*[[Crear un nou usuari amb permisos d'edició]]&lt;br /&gt;
*[[Redirecció a l'entrada de Màquines recreatives de la wiki]]&lt;br /&gt;
*[[Migració 1.17 a 1.34 (8 anys)]] (gener 2020, no s'ha fet cap migració en 8 anys)&lt;br /&gt;
*[[Spam octubre 2020]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació Tomcat]]&lt;br /&gt;
&lt;br /&gt;
=== Pentaho ===&lt;br /&gt;
*[[Recursos teoria BI]]&lt;br /&gt;
*[[Pentaho BI Suite Instal·lació]]&lt;br /&gt;
&lt;br /&gt;
=== Mondrian ===&lt;br /&gt;
*[[Instal·lació Mondrian]]&lt;br /&gt;
*[[Instal·lació Mondrian 2010]]&lt;br /&gt;
&lt;br /&gt;
=== PDI-Pentaho Data Integration (aka Kettle) ===&lt;br /&gt;
*[[Introducció a Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Instal·lació Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Primers passos amb PDI]]&lt;br /&gt;
*[[DAI-C8-EC:_Eines_ETL_i_Integració_de_Dades._Kettle]]. Pràctica EC PDI-Kettle-Spoon&lt;br /&gt;
&lt;br /&gt;
=== Compilació del Kernel amb Ubuntu Studio ===&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 1r mètode]]&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 2n mètode]]&lt;br /&gt;
=== How-To Geek Ubuntu ===&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ the How-To Geek]&lt;br /&gt;
=== Runlevel ===&lt;br /&gt;
*[[Runlevel]]&lt;br /&gt;
*[[Executar un script a l'inici]]&lt;br /&gt;
&lt;br /&gt;
=== Pendrives i USB ===&lt;br /&gt;
*[[Instal·lació des del USB (no ha funcionat)]]&lt;br /&gt;
*[[Muntar i formatar el pendrive]]&lt;br /&gt;
&lt;br /&gt;
=== Servidor d'echos (exercici) ===&lt;br /&gt;
*[[Compilació]]&lt;br /&gt;
*[[Dimonitzem el servidor d'echos]]&lt;br /&gt;
*[[Debianitzem el servidor d'echos]]&lt;br /&gt;
*[[Instal·lació del paquet i comprovació]]&lt;br /&gt;
*[[Registre de dimonis. Logging. Syslog]]&lt;br /&gt;
*[[Instal·lació amb configuració (Debconf)]]&lt;br /&gt;
[[Image:echod_0.1-1_i386.deb |echod_0.1-1_i386.deb ]]&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu]]&lt;br /&gt;
*[[Alternatives al SQL*Plus: gqlplus]]&lt;br /&gt;
*[[Clients per a Oracle]]&lt;br /&gt;
*[[PHP-llibreria OCI8]]&lt;br /&gt;
*[[PHP-llibreria OCI8: programació PHP. Procediments]]&lt;br /&gt;
*Manual Instal·lació Oracle 10g+OCI8 sobre Windows, fet per Àlex Adrià:[[Imatge:Installacio_oracle10G_oci8_windows.pdf‎]]&lt;br /&gt;
*Documentació d'Oracle: http://tahiti.oracle.com&lt;br /&gt;
*[[Manual Oracle 9i]]&lt;br /&gt;
*[[Arquitectura Oracle]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo ===&lt;br /&gt;
*[[Assignatura AIAIG]]&lt;br /&gt;
*[[Instal·lació Openbravo]]&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Openbravo 2.50]]&lt;br /&gt;
*[[Instal·lació Openbravo 3]] (abril 2011)&lt;br /&gt;
*[[Entrar al Postgres i fer còpies de seguretat bàsiques]]&lt;br /&gt;
*[[Instal·lar la traducció al castellà]]&lt;br /&gt;
*[[Instal·lar la traducció al català a partir de la del castellà]]&lt;br /&gt;
*[[Primers passos Openbravo]]&lt;br /&gt;
*[[Petita guia d'inici]]&lt;br /&gt;
*[[Càrrega massiva de dades]] (oficial) &lt;br /&gt;
*[[Càrrega massiva de dades II]] (SQL) &lt;br /&gt;
*[[Informes amb Jasper Reports]]&lt;br /&gt;
*[[Documentació]]&lt;br /&gt;
*[[Openbravo Web Services]]&lt;br /&gt;
*[[Llista oficial partners]]&lt;br /&gt;
*[[Canal IRC]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/index.php/Openbravo_ERP_roadmap full de ruta]&lt;br /&gt;
*[[Implantació d'una ERP]]&lt;br /&gt;
*[[Dreceres de teclat Openbravo 2.40]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/Business_Intelligence_Integration Openbravo+Pentaho]&lt;br /&gt;
*Millores versió 2.50: http://wiki.openbravo.com/wiki/Openbravo_ERP_2.50_ReleaseNotes&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*Acceptance Testing: http://wiki.openbravo.com/wiki/index.php/Acceptance_Testing&lt;br /&gt;
*[[Problemes resolts Openbravo]]&lt;br /&gt;
*[[Desenvolupar Openbravo amb Eclipse]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo POS ===&lt;br /&gt;
*[[Instal·lació Openbravo POS]]&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*FAQ: http://wiki.openbravo.com/wiki/OpenbravoPOS_FAQ&lt;br /&gt;
*[[Funcionament del Openbravo POS]]&lt;br /&gt;
*[[Cosetes del Openbravo POS]]&lt;br /&gt;
*Programant Openbrabo POS: &lt;br /&gt;
**http://wiki.openbravo.com/wiki/OpenbravoPOS_Developer_guide&lt;br /&gt;
**http://wiki.openbravo.com/wiki/Openbravo_POS_Scripting_Tutorial&lt;br /&gt;
*[[Instal·lar hardware TPV]]&lt;br /&gt;
*[[Compilar Openbravo POS amb NetBeans i Eclipse]]&lt;br /&gt;
*Manual que proporciona Eines TIC: [[Imatge:7 Guia TPV.pdf]]&lt;br /&gt;
*[[Direct Printing: Epson TM-T70 + Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
=== OpenERP / Tryton ===&lt;br /&gt;
*pdf Jordi Esteve (UPC), Festa Ubuntu 9.04. [[Imatge:Que es openerp.pdf]]&lt;br /&gt;
*[[Instal·lació OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP II]]&lt;br /&gt;
*[[Configuració i documentació Open ERP]]&lt;br /&gt;
*[[OpenERP. Simulant cas real]]&lt;br /&gt;
*[[Models AEAT per a empreses]]&lt;br /&gt;
*[[Monitoritzar canvis en les taules PostgreSQL de OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP 7.0 (maig 2014)]]&lt;br /&gt;
*[[instal·lació Tryton]] (maig 2014) (fork comunitari de OpenERP). (TBD) (per ex, nan-tic.com han passat de OpenERP a Tryton)&lt;br /&gt;
&lt;br /&gt;
=== Abanq ===&lt;br /&gt;
*[[Què és Abanq]]&lt;br /&gt;
*[[Documentació Abanq]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu a partir de les fonts]]&lt;br /&gt;
*[[Treballant amb Abanq: fer una factura]]&lt;br /&gt;
*[[Treballant amb Abanq II]]&lt;br /&gt;
&lt;br /&gt;
=== Eines TIC ===&lt;br /&gt;
*[[Què és Eines TIC]]&lt;br /&gt;
&lt;br /&gt;
=== Sugar CRM ===&lt;br /&gt;
*[[Què és Sugar CRM?]]&lt;br /&gt;
*[[Instal·lació Sugar CRM]]&lt;br /&gt;
*[[Traducció al castella de Sugar CRM]]&lt;br /&gt;
*[[Documentació Sugar CRM]]&lt;br /&gt;
*[[WebServices, SOAP]]&lt;br /&gt;
*[[Integració Sugar CRM i Openbravo]]&lt;br /&gt;
=== vtiger ===&lt;br /&gt;
*[[Instal·lació vTiger]]&lt;br /&gt;
*[[Pràctica vTiger: gestió d'incidències]]&lt;br /&gt;
&lt;br /&gt;
=== Alfresco ===&lt;br /&gt;
*[[Què és un DMS?]]&lt;br /&gt;
*[[Registre i Documentació Alfresco Enterprise]]&lt;br /&gt;
*[[Compilació des de les fonts]]&lt;br /&gt;
*[[Instal·lació Alfresco a Debian]] inclou Tomcat. Ha funcionat&lt;br /&gt;
*[[Instal·lació Alfresco Ubuntu]] només war. De moment no ha funcionat&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Alfresco Community 3.4 - febrer 2011]]&lt;br /&gt;
*[[Documentació Alfresco]]&lt;br /&gt;
*[[Backup and Recovery d'Alfresco]]&lt;br /&gt;
&lt;br /&gt;
=== Zimbra ===&lt;br /&gt;
*[[Què és Zimbra Collaboration Suite]]&lt;br /&gt;
*Zimbra Tour en Flash a http://www.zimbra.com/demos/zimbra_tour/&lt;br /&gt;
*Zimbra Hosted Free Trial: http://www.zimbra.com/products/hosted_demo.php&lt;br /&gt;
&lt;br /&gt;
===Orange HRM ===&lt;br /&gt;
*[[Documentació Orange]]&lt;br /&gt;
*[[Instal·lació Orange HRM]]&lt;br /&gt;
&lt;br /&gt;
===MantisBT: Gestió d'Incidències ===&lt;br /&gt;
*[[Instal·lació MantisBT]]&lt;br /&gt;
*[[Característiques MantisBT]]&lt;br /&gt;
*[[Instal·lació i configuració Mantisbalmes curs 2011-12 (producció)]]&lt;br /&gt;
&lt;br /&gt;
=== Software Nòmines Open Source ===&lt;br /&gt;
*[[Documentació Nòmines]]&lt;br /&gt;
&lt;br /&gt;
=== BulmaGés ===&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian]]&lt;br /&gt;
*[[Compilació de Bulmagés des del codi font]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 3a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Ubuntu 4a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 5a prova]]&lt;br /&gt;
&lt;br /&gt;
=== Wordpress ===&lt;br /&gt;
*[[Instal·lació i configuració d'un blog amb wordpress]]&lt;br /&gt;
*[[Hack WordPress]]&lt;br /&gt;
*[[eCommerce - carret de la compra]]&lt;br /&gt;
*[[Programació carret de la compra PayPal]]&lt;br /&gt;
*[[Configurar plugin de Twitter]]&lt;br /&gt;
*[[Canviar la imatge de la capçalera del Wordpress en funció de la categoria]]&lt;br /&gt;
&lt;br /&gt;
=== Moodle ===&lt;br /&gt;
*[[Instal·lació i configuració del Moodle]]&lt;br /&gt;
*[[Backup i Restore del Moodle]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 10-11]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 11-12]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 12-13]]&lt;br /&gt;
&lt;br /&gt;
=== Groupion ===&lt;br /&gt;
*[[Què és Groupion]]&lt;br /&gt;
*Edicions i Llicència Groupion: http://www.groupion.com/en/getgroupion/editions/&lt;br /&gt;
*[[Documentació Groupion]]&lt;br /&gt;
*[[Groupion: Instal·lació i Administració]]&lt;br /&gt;
&lt;br /&gt;
=== Asterisk ===&lt;br /&gt;
*[[Què és asterisk?]]&lt;br /&gt;
&lt;br /&gt;
===SIG-GIS: Sistemes d'Informació Geogràfica===&lt;br /&gt;
*[[gvSIG: Instal·lació i configuració]]&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
*[[Instal·lació Android SDK]]&lt;br /&gt;
*[[Documentació Android]]&lt;br /&gt;
*[[Utilitzar SQLite des de la Shell en Android]]&lt;br /&gt;
*[[Programant Android SDK]]&lt;br /&gt;
*[[Projecte: dictionary.xml]]&lt;br /&gt;
*[[HTC Dream de Movistar]]&lt;br /&gt;
*[[GMote per a control remot]]&lt;br /&gt;
*[[TBD Android]]&lt;br /&gt;
*[[Android: aplicacions útils]]&lt;br /&gt;
*[[Motorola Moto G]]&lt;br /&gt;
*[[Programació amb MIT App Inventor]]&lt;br /&gt;
&lt;br /&gt;
=== Disc de xarxa NDAS ===&lt;br /&gt;
*[[iomega Home Network Hard Drive 320GB]]&lt;br /&gt;
*[[iomega Home Network Hard Drive 500GB]] a l'institut&lt;br /&gt;
&lt;br /&gt;
===Subversion===&lt;br /&gt;
*[[Funcionament Subversion]]&lt;br /&gt;
&lt;br /&gt;
===FTP Server: vsftp===&lt;br /&gt;
*[[FTP Server: vsftp]]&lt;br /&gt;
*[[Client de FTP: gftp]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
*[[SSH]]&lt;br /&gt;
*[[Sessió SSH dels alumnes]]&lt;br /&gt;
===Virtual Box===&lt;br /&gt;
*[[Virtual Box en mode comanda: VBoxManage]]&lt;br /&gt;
===Docker, contenidors===&lt;br /&gt;
*[[Primers passos amb docker]]&lt;br /&gt;
*[[docker: instància de mysql server]]&lt;br /&gt;
*[[docker: PostgreSQL]]&lt;br /&gt;
*[[docker a DAM-M02]]&lt;br /&gt;
*[[Cas pràctic: dockeritzar una aplicació. Hauk]]&lt;br /&gt;
*[[Java amb Docker: HelloWorld]]&lt;br /&gt;
*[[docker: intel·ligència artificial - IOC]]&lt;br /&gt;
&lt;br /&gt;
===Remote Shell RSH===&lt;br /&gt;
*[[Remote Shell RSH]]&lt;br /&gt;
===Backup===&lt;br /&gt;
*[[Política de backup]]&lt;br /&gt;
*[[Backup del sistema]]&lt;br /&gt;
*[[backup_UbuntuServer.sh]]&lt;br /&gt;
*[[backup_DELL_Studio.sh]]&lt;br /&gt;
*[[backup_DELL_WXP.bat]]&lt;br /&gt;
*[[backup_LINKAT.sh]]&lt;br /&gt;
*[[backup_BBDD.bat]]&lt;br /&gt;
*[[Còpia de UbuntuServer a DVD]]&lt;br /&gt;
*[[Backup del servidor - oct 2011]]&lt;br /&gt;
*[[Backup del portàtil de producció al servidor]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de la línia de comandes===&lt;br /&gt;
*[[Enviar mail des de la línia de comandes]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de PHP===&lt;br /&gt;
*[[Enviar mail des de PHP: phpMailer]]&lt;br /&gt;
&lt;br /&gt;
===Postfix===&lt;br /&gt;
*Configuració bàsica del Postfix: http://www.postfix.org/BASIC_CONFIGURATION_README.html&lt;br /&gt;
*[[Configuració del postfix]] (inacabat)&lt;br /&gt;
*[[Configuració del postfix II]] (inacabat)&lt;br /&gt;
&lt;br /&gt;
===Classificació fotos===&lt;br /&gt;
*[[ImageMagick]]&lt;br /&gt;
*[[LinPHA]]&lt;br /&gt;
*[[Coppermine]]&lt;br /&gt;
*[[Pixtuff 3.0]]&lt;br /&gt;
*[[Arthropoda]]&lt;br /&gt;
*[[Flickr API]]&lt;br /&gt;
*Recuperar fotos d'una tarja SD o d'un USB: [[http://backinlinux.com/2013/06/11/recuperar-informacion-borrada-en-una-usb-o-disco-con-ubuntu/]]. Ha funcionat correctament.&lt;br /&gt;
&lt;br /&gt;
=== Món Linux ===&lt;br /&gt;
*Exàmen LPIC (wiki Sergi Tur): http://acacha.org/mediawiki/index.php/LPIC1_101&lt;br /&gt;
*revista digital: http://www.gacetatecnologica.com&lt;br /&gt;
*Linux Journal: http://www.linuxjournal.com/&lt;br /&gt;
*Linux Magazine: [http://www.linux-mag.com/ Linux Magazine]&lt;br /&gt;
*webs amigues: http://www.aplicacionesempresariales.com/&lt;br /&gt;
*Empreses que treballen amb Linux: &lt;br /&gt;
:http://libroblanco.com/cms/index.php/Search-dir.html&lt;br /&gt;
:http://www.catpl.org/catpl/empreses&lt;br /&gt;
* Llibre Blanc Smile: Introducció a l'Open Source: [[Imatge:Livre_Blanc_Smile_-_Introduction_à_l'open_source.pdf]]&lt;br /&gt;
* Video promocional Red Hat: Truth Happens: http://www.youtube.com/watch?v=ZtdnZNYN0MM&lt;br /&gt;
* Taula Rodona Linkat vs altres distribucions. Festa Ubuntu 9.04. [[Imatge:TaulaRodonaLinkat.pdf]]&lt;br /&gt;
* Programari lliure a l'escola. Projecte LINKAT. Festa Ubuntu 9.04. [[Imatge:Presentacio Terrassa 09.pdf]]&lt;br /&gt;
* Llibre ''Two bits'' (the cultural significance of free software). Cristopher M. Kelty. [[Imatge:Kelty-TwoBits.pdf]]&lt;br /&gt;
* Connexions (http://cnx.org/). Material educatiu en format lliure.&lt;br /&gt;
* Introducció a Linux (pdf):  [[Fitxer:UF1-Lx 1.pdf]] i [[Fitxer:UF1-Lx 2.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Jocs a Linux===&lt;br /&gt;
*Linux Game Database: http://www.lgdb.org&lt;br /&gt;
*[[Xiangqi-Chinese Chess: GMChess]]&lt;br /&gt;
&lt;br /&gt;
===webcams===&lt;br /&gt;
*[[webcams a Linux]]&lt;br /&gt;
*[[motion tracking - fiducial markers]]&lt;br /&gt;
*[[guvcview]]&lt;br /&gt;
&lt;br /&gt;
===Videos de l'escriptori===&lt;br /&gt;
*[[aplicatiu pyvnc2swf]]&lt;br /&gt;
*[[penjar videos al Youtube]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Fer vídeos del Youtube===&lt;br /&gt;
*teleprompter: http://www.cueprompter.com/&lt;br /&gt;
*[[DVD to AVI]] (Document per polir)&lt;br /&gt;
*[[Webcams a Linux]]&lt;br /&gt;
*[[Fotos i videos amb la Canon EOS 550D. Editor de video Openshot]]&lt;br /&gt;
*[[Tècniques de video]]&lt;br /&gt;
*screencast amb recordmydesktop (amb audio): [[Com_construir_un_MAME_Arcade#gravar_video_del_funcionament_jukebox.2FMAME]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Cremar un CD des de la línia de comandes===&lt;br /&gt;
*[[Cremar un CD des de la línia de comandes]]&lt;br /&gt;
===Ubuntu Server===&lt;br /&gt;
*[[Tips Ubuntu Server]]&lt;br /&gt;
*[[Gestor de finestres icewm]]&lt;br /&gt;
*[[OpenLDAP]]&lt;br /&gt;
===Fer un LiveCD===&lt;br /&gt;
*[[Fer un LiveCD 1]] (no ha funcionat)&lt;br /&gt;
*[[Fer un LiveCD 2]] (remastersys)&lt;br /&gt;
*[[Fer un LiveCD 3]] (remastersys de forma manual)&lt;br /&gt;
===Tips de seguretat===&lt;br /&gt;
*[[Obrir el SSH des d'una pàgina web]]&lt;br /&gt;
*[[xifratge simètric i asimètric]]&lt;br /&gt;
&lt;br /&gt;
===Projecte PHP exemplar===&lt;br /&gt;
* [[Projecte PHP exemplar: Introducció i objectius]]&lt;br /&gt;
* [[Debug: log4PHP]]&lt;br /&gt;
* [[cron]]&lt;br /&gt;
* [[localització (suport multiidioma)]]&lt;br /&gt;
&lt;br /&gt;
===ALTARM - Audit Logical Transactions And Recover Mistakes===&lt;br /&gt;
* [[ALTARM: Windows + Postgres + VB + ASP]]&lt;br /&gt;
&lt;br /&gt;
===Prendre notes amb Tomboy===&lt;br /&gt;
*[[Hacking Tomboy]]&lt;br /&gt;
===wiimote. Projectes amb la Wii===&lt;br /&gt;
*[[LLibreria WiiRemoteJ]]&lt;br /&gt;
*[[Utilitzar wiimote com a ratolí]]&lt;br /&gt;
*[[Pissarra digital]]&lt;br /&gt;
*[[Llibreria WiiC]]&lt;br /&gt;
&lt;br /&gt;
===Karaoke===&lt;br /&gt;
*[[Eliminar la part vocal d'una cançó]]&lt;br /&gt;
*[[PyKaraoke]]&lt;br /&gt;
&lt;br /&gt;
===Screenlets===&lt;br /&gt;
*[[Screenlets]]&lt;br /&gt;
&lt;br /&gt;
===Jocs Infantils===&lt;br /&gt;
*[[Jocs Infantils]]&lt;br /&gt;
===Taller===&lt;br /&gt;
*[[Fast and Easy Can Stirling Engine Tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Impressió===&lt;br /&gt;
*[[Instal·lació HP Deskjet F2480]]&lt;br /&gt;
&lt;br /&gt;
===Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals===&lt;br /&gt;
*[[Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals: Remastersys]]&lt;br /&gt;
&lt;br /&gt;
=== Problemes ===&lt;br /&gt;
*[[joan is not in the sudoers file]]&lt;br /&gt;
*[[problema restore mysql]]&lt;br /&gt;
*[[no em connecto al postgres des d'un ordinador de la xarxa local]]&lt;br /&gt;
*[[deshabilitar el touchpad mentre escrius]]&lt;br /&gt;
*[[el cron no executa el script]]&lt;br /&gt;
&lt;br /&gt;
===GIMP, tauleta gràfica Wacom, Animació 2D/3D, gràfics vectorials, retoc fotogràfic===&lt;br /&gt;
*[[GIMP i tauleta gràfica Wacom]]&lt;br /&gt;
*[[Programació GIMP]]&lt;br /&gt;
*[[Plugins GIMP]]&lt;br /&gt;
Amb Synfig Studio també es pot utilitzar la Wacom: [[Synfig_Studio:_Animació_2D#Creating_Shapes]]&lt;br /&gt;
*[[Synfig Studio: Animació 2D]]&lt;br /&gt;
*[[Blender: Animació 2D]] (modelització 3D)&lt;br /&gt;
*Inkscape: gràfics vectorials. Format SVG (Scalable Vector Graphics): http://inkscape.org/&lt;br /&gt;
*[[freeCAD]]&lt;br /&gt;
*[[Retoc fotogràfic tipus plugins d'Instagram]]&lt;br /&gt;
&lt;br /&gt;
===LibreCAD===&lt;br /&gt;
*[[LibreCAD]]. Free Open Source CAD software&lt;br /&gt;
===CNC===&lt;br /&gt;
Aquí concentro tots els enllaços relacionats amb '''CNC''':&lt;br /&gt;
*[[inkscape]] per a CNC. Per generar g-code i utilitzar Linuxcnc: https://www.youtube.com/watch?v=o7Mfi8ZMHWc&lt;br /&gt;
*[[HeeksCAD]]. Necessito HeeksCAD per obtenir el g-code&lt;br /&gt;
*[[LinuxCNC (EMC2)]]. Alternativa per a Linux&lt;br /&gt;
*[[dxf2gcode]]&lt;br /&gt;
*[[dxf2G]] (línia de comandes)&lt;br /&gt;
*[[utilitat grecode]]&lt;br /&gt;
*[[Màquines CNC]]&lt;br /&gt;
*[[Tutorial G-Code]]&lt;br /&gt;
*[[Fer_plaques_PCB_amb_màquina_CNC | fer plaques PCB amb màquina CNC (drilling and milling) ]]&lt;br /&gt;
*[[Construir_una_màquina_CNC | Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina_CNC_3040T | Màquina CNC 3040T]] (compra de bits/broques)&lt;br /&gt;
*[[Utiltizar_la_màquina_CNC | Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Projectes CNC. Documentació i know-how]]&lt;br /&gt;
*[[script CNC stroke]]&lt;br /&gt;
*[[script CNC hollow]]&lt;br /&gt;
*[[Halftone. Script drillpic2]]&lt;br /&gt;
*[[Càlculs CNC. Speeds and Feeds]]&lt;br /&gt;
*[[Màquina de tall làser (Fàbrica del Sol)]]&lt;br /&gt;
&lt;br /&gt;
===Màquina de Tall làser===&lt;br /&gt;
*[[Màquina de Tall làser. Referències]]&lt;br /&gt;
*[[script cncboxparam]] (projecte ''Maria 12 anys'', night light)&lt;br /&gt;
&lt;br /&gt;
===Tallar vinils===&lt;br /&gt;
*[[Silhouette Cameo]] (abril 2018)&lt;br /&gt;
&lt;br /&gt;
===FreeCAD, 3D printing===&lt;br /&gt;
*[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
===gnuplot===&lt;br /&gt;
*[[gnuplot]]&lt;br /&gt;
===Octave (equivalent a Matlab)===&lt;br /&gt;
*[[octave]] (A high-level interactive language for numerical computations)&lt;br /&gt;
&lt;br /&gt;
===Documents al núvol===&lt;br /&gt;
*[[Documents al núvol: Dropbox i Ubuntu One]]&lt;br /&gt;
*[[Documents al núvol: Copy (alternativa al Dropbox)]]&lt;br /&gt;
&lt;br /&gt;
===Servidor Pentium IV 3GHz===&lt;br /&gt;
*[[Servidor Pentium IV 3GHz]] (octubre 2011)&lt;br /&gt;
===Portàtil HP Pavilion g series (institut)===&lt;br /&gt;
*[[Portàtil HP Pavilion g series (institut)]]&lt;br /&gt;
&lt;br /&gt;
===Reconeixement de veu===&lt;br /&gt;
*[[CMU Sphinx]]&lt;br /&gt;
&lt;br /&gt;
===aMule===&lt;br /&gt;
*[[aMule remot]]&lt;br /&gt;
===cosetes===&lt;br /&gt;
*Nautilus: que la barra de direccions sigui text. http://www.taringa.net/posts/linux/5429141/Cambia-la-barra-de-direcciones-de-Nautilus-a-texto.html&lt;br /&gt;
*[[Llibres electrònics i l'editor Sublime Text2. Convertir pdf a txt]]&lt;br /&gt;
&lt;br /&gt;
===Veure la BBC amb una connexió VPN===&lt;br /&gt;
*[[Veure la BBC amb una connexió VPN]]&lt;br /&gt;
&lt;br /&gt;
= HowTo Linkat =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Primers passos]]&lt;br /&gt;
=== Materials de formació ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/dvdformacio/materials/td111/ Curs td111 de LINKAT]&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració Apache]]&lt;br /&gt;
*[[Lloc virtual per a un alumne]]&lt;br /&gt;
&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Automatitzar les còpies de seguretat]]&lt;br /&gt;
*[[Atacar des de la xarxa]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració del Postgres]]&lt;br /&gt;
&lt;br /&gt;
*[[Instal·lació PgAdmin]]&lt;br /&gt;
&lt;br /&gt;
=== Java-JDK ===&lt;br /&gt;
*[[Desinstal·lació total del java: JDK, JRE]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK II]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació i configuració del Tomcat]]&lt;br /&gt;
=== Apache Ant ===&lt;br /&gt;
*[[Instal·lació i configuració del Apache Ant]]&lt;br /&gt;
=== OpenBravo ===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo]]&lt;br /&gt;
*[[Traducció al castellà. Problemes]]&lt;br /&gt;
=== OpenBravo POS a la LINKAT===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo POS a la LINKAT]]&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració del Samba]]&lt;br /&gt;
=== MediaWiki ===&lt;br /&gt;
*[[Instal·lació i configuració d'una mediawiki]]&lt;br /&gt;
=== pendrive al linkat ===&lt;br /&gt;
*[[pendrive al linkat]]&lt;br /&gt;
=== Aplicacions Jaume Balmes ===&lt;br /&gt;
*[[Aplicació assistència]]&lt;br /&gt;
*[[jaumebalmes.net - Joomla]]&lt;br /&gt;
*[[Servidor virtual (Moodle i altres). Manteniment]]&lt;br /&gt;
&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Instal·lació Oracle a la LINKAT 3]]&lt;br /&gt;
&lt;br /&gt;
= Curs Administració Linux ICE-UPC =&lt;br /&gt;
*[[Presentació]]&lt;br /&gt;
*[[Sessió 1]]&lt;br /&gt;
*[[Sessió 2]]&lt;br /&gt;
*[[Sessió 3. Compilació del kernel]]&lt;br /&gt;
*[[Sessió 4]]&lt;br /&gt;
*[[Sessió 5. Gestió Remota, SSH]]&lt;br /&gt;
*[[Sessió 6]]&lt;br /&gt;
*[[Sessió 7]]&lt;br /&gt;
*[[Sessió 8]]&lt;br /&gt;
*[[Resum configuració xarxa]]&lt;br /&gt;
&lt;br /&gt;
= Curs Programació Linux ICE-UPC =&lt;br /&gt;
*[[Sessió 1 curs programació linux]]&lt;br /&gt;
*[[Sessió 2 curs programació linux]]&lt;br /&gt;
*[[Sessió 3 curs programació linux]]&lt;br /&gt;
*[[Sessió 4 curs programació linux]]&lt;br /&gt;
*[[Sessió 5 curs programació linux]]&lt;br /&gt;
*[[Sessió 6 curs programació linux]]&lt;br /&gt;
*[[Sessió 7 curs programació linux]]&lt;br /&gt;
*[[Sessió 8 curs programació linux]]&lt;br /&gt;
*[[Sessió 9 curs programació linux]]&lt;br /&gt;
*[[Sessió 10 curs programació linux]]&lt;br /&gt;
&lt;br /&gt;
= Projecte Langtrainer =&lt;br /&gt;
*[[Langtrainer: Introducció]]&lt;br /&gt;
*[[Langtrainer: Base de dades]]&lt;br /&gt;
*[[Langtrainer: Open Flash Chart-OFC]]&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Langtrainer: ToDo]]&lt;br /&gt;
*[[Langtrainer: Control de Qualitat, causístiques]]&lt;br /&gt;
*[[Langtrainer: nova instal·lació pas a pas]]&lt;br /&gt;
*[[Speech Recognition]]&lt;br /&gt;
*[[Vocabulari anglès empresarial]]&lt;br /&gt;
*[[Curs: Eines i estratègies metodològiques per a impartir anglès en els cicles formatius d'FP]]&lt;br /&gt;
=TTS i STT (speech recognition, language models, etc)=&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Instal·lació de sphinxbase i pocketsphinx a la RPi (proves)]] (Magic Mirror)&lt;br /&gt;
*[[TTS: Hora Catalana]]&lt;br /&gt;
&lt;br /&gt;
=Programació Web=&lt;br /&gt;
==PHP==&lt;br /&gt;
*[[Open Flash Chart]]&lt;br /&gt;
*[[executar PHP des del cron]]&lt;br /&gt;
*[[PHP i autenticació LDAP]]&lt;br /&gt;
*[[Framework Laravel]] (maig 2020)&lt;br /&gt;
&lt;br /&gt;
==AJAX==&lt;br /&gt;
*[[Història d'un formulari]]&lt;br /&gt;
&lt;br /&gt;
=Programació Java=&lt;br /&gt;
*Programació de videojocs: Space Invaders amb Java:&lt;br /&gt;
**http://balusoft.wordpress.com/2010/09/26/creando-un-space-invaders-con-java/&lt;br /&gt;
**http://dl.dropbox.com/u/9043876/Curso%20de%20Space%20Invaders/JAVA-INVADERS-00.html&lt;br /&gt;
*[[Shared Libraries amb Java]]&lt;br /&gt;
*[[Programació de sockets amb Java]]&lt;br /&gt;
&lt;br /&gt;
=Programació en C/C++=&lt;br /&gt;
*[[Llibreria EasyBMP]]&lt;br /&gt;
*[[Programació OpenGL]]&lt;br /&gt;
*[[OpenGL]] (i SDL)&lt;br /&gt;
*[[SDL sense servidor X. Raspberry Pi]]&lt;br /&gt;
*[[Tutorial de C++. El diario de Peter Class]] TBD (i altres tutorials)&lt;br /&gt;
*[[Programación en C sobre Linux]] TBD&lt;br /&gt;
*[[Llibreria libpg: accedir a PostgreSQL]]&lt;br /&gt;
*[[wiiuse - The Wiimote C Library]]&lt;br /&gt;
*[[Eclipse CDT]] (IDE per programar en C++ basat en Eclipse&lt;br /&gt;
*[[Anjuta]] IDE C/C++. Mirar també el IDE '''MonoDevelop'''&lt;br /&gt;
*[[llibreries gràfiques GTK]] (per fer finestres..., aplicacions d'escriptori)&lt;br /&gt;
*[[Videojocs amb Allegro]]&lt;br /&gt;
*[[diagrames de flux UML: dia]]&lt;br /&gt;
*[[Writing device drivers in Linux: A brief tutorial]]&lt;br /&gt;
*[[L'API de C de MySQL]]&lt;br /&gt;
*[[Estructures de dades amb C++]]&lt;br /&gt;
*[[parsejar fitxers XML]]&lt;br /&gt;
*[[Videojocs amb C++ i SDL]]&lt;br /&gt;
*[[STK Synthesis ToolKit in C++]]&lt;br /&gt;
*[[Coses útils C++]]&lt;br /&gt;
*[[Xlib programming]] Programació del servidor X&lt;br /&gt;
*[[Fast Fourier Transform: FFTW]]&lt;br /&gt;
*[[Fils/threads amb C++]]&lt;br /&gt;
*[[passar paràmetres per referència amb C]] (amb C++ és una mica diferent)&lt;br /&gt;
*[[Accedir a dispositius USB: llibreria libusb]]&lt;br /&gt;
*[[libxl: llegir i escriure fitxers Excel]]&lt;br /&gt;
*[[Expressions regulars amb C]]&lt;br /&gt;
*[[Programació ncurses]] (colors a la consola i controlar la posició del que escric a la consola)&lt;br /&gt;
*[[Programació dels microcontroladors AVR: avr-gcc]]&lt;br /&gt;
*[[Classe Cotxe, amb C a pèl i amb C++]]&lt;br /&gt;
*[[ID3 Tag Library]] (llegir els tags que hi ha en un fitxer mp3)&lt;br /&gt;
*[[Parser de JSON amb C i C++]]&lt;br /&gt;
*[[Aplicació de consola per capturar events del teclat amb C++ (non-blocking)]]&lt;br /&gt;
*[[POO en C++. Exemple Author-Book. Un objecte té com a data membre un altre objecte]]&lt;br /&gt;
*[[OpenCV a la RPi]] (amb webcams USB i amb la RasPiCam)&lt;br /&gt;
*[[OpenCV a Ubuntu 16.04]]&lt;br /&gt;
*[[OpenCV a Ubuntu 18.04]] (gener 2020)&lt;br /&gt;
*[[OpenCV: aplicatiu recta perfecte, cercle perfecte]] (gener 2020)&lt;br /&gt;
*[[Mètodes o esquemes algorítmics]]&lt;br /&gt;
*[[SDL mínim. Diferents tècniques]]&lt;br /&gt;
*[[Llibreria raylib (videojocs) a la Raspberry Pi]]&lt;br /&gt;
*[[Curs edX: Animation and CGI Motion (ColumbiaX: CSMM.104x)]] (Llibreria Eigen d'Àlgebra Lineal)&lt;br /&gt;
&lt;br /&gt;
=Programació Python=&lt;br /&gt;
*[[Pygame. Programació videojocs]]&lt;br /&gt;
*[[Mètodes numèrics. numpy, scipy, sympy]]&lt;br /&gt;
*[[Python Virtual Environments]]&lt;br /&gt;
*[[python3-tk: GUI amb tinker]]&lt;br /&gt;
*[[Bot de Twitter amb Python i Tweepy]] (setembre 2021)&lt;br /&gt;
&lt;br /&gt;
=Machine Learning, Deep Learning, AI=&lt;br /&gt;
*[[TensorFlow. Python]] (Deep Learning, DL)&lt;br /&gt;
*[[RPi i TensorFlow. Object detection and classification]]&lt;br /&gt;
*[[RPi. Real-time object tracking with TensorFlow]]&lt;br /&gt;
&lt;br /&gt;
=Programació videojocs amb Unity3D=&lt;br /&gt;
*[[Programació videojocs amb Unity3D]]&lt;br /&gt;
=Github=&lt;br /&gt;
*[[Github pràctic: control de versions]]&lt;br /&gt;
*[[Github pages]]&lt;br /&gt;
&lt;br /&gt;
=Node.js=&lt;br /&gt;
*[[Introducció a Node.js]]&lt;br /&gt;
*[[Node.js: Mòduls d'àudio]]&lt;br /&gt;
*[[Node.js: socket.io]]&lt;br /&gt;
&lt;br /&gt;
=Frameworks i llibreries de Javascript=&lt;br /&gt;
*[[React: A JavaScript library for building user interfaces]] (març 2020)&lt;br /&gt;
*[[ReactJS. Curs EdX. Introduction to ReactJS. Microsoft: DEV281x]]&lt;br /&gt;
*[[React Native]] (programació per a Android) (abril 2020)&lt;br /&gt;
*[[Desplegar un projecte web amb Express i Heroku]]&lt;br /&gt;
*[[Aplicació Reactjs a través del servidor web Express]]&lt;br /&gt;
*[[React CRUD tutorial]]&lt;br /&gt;
*[[App mòbil amb React Native: arbres singulars de Barcelona]] (abril-maig 2020, 2022)&lt;br /&gt;
*[[App mòbil amb React Native: Android Studio, mòbil amb USB, emulador]] (ReactNative sense Expo)&lt;br /&gt;
*[[React Native i bluetooth]] (ReactNative sense Expo)&lt;br /&gt;
*[[Llibreria three.js]] (webgl)&lt;br /&gt;
*[[Rest-API-Express-MongoDB]]&lt;br /&gt;
&lt;br /&gt;
=Google Maps=&lt;br /&gt;
*[[Google Maps JavaScript API v3]]&lt;br /&gt;
&lt;br /&gt;
=OpenStreetMap=&lt;br /&gt;
*[[OpenStreetMap - OSM]] (octubre 2019)&lt;br /&gt;
*[[Arbres Monumentals de Catalunya (programació OSM)]] (octubre 2019)&lt;br /&gt;
*[[Ancoratges de bicicleta a Barcelona]] (OSM) (oct 2019)&lt;br /&gt;
*[[opendata-barcelona]] (OSM)&lt;br /&gt;
*[[Traveling Salesman problem i arbres singulars de Barcelona]]&lt;br /&gt;
*[[Importació dels dòlmens de Catalunya]]&lt;br /&gt;
*[[Tiles Server. Renderització]]&lt;br /&gt;
*[[Esglésies romàniques de Catalunya]]&lt;br /&gt;
*[[Fronteres i límits administratius. GeoJSON. Mapes coroplètics]]&lt;br /&gt;
*[[Mapes medievals, mapes ficticis, mapes de fantasia, jocs basats en OSM]]&lt;br /&gt;
*[[Fusionar GeoJSON]]&lt;br /&gt;
*[[Openlayers: ol package. Exemple Casa de Papel]] (Casa de Papel, rutes BTT Cap de Creus)&lt;br /&gt;
*[[Openlayers amb ReactJS]]&lt;br /&gt;
*[[Exemples Openlayers (ol package)]]&lt;br /&gt;
*[[Projecte ProgessiveMaps]] (TBD)&lt;br /&gt;
*[[Reactnative, geolocation]] (programació Android)&lt;br /&gt;
*[[Mapes del ICGC]] (Institut Cartogràfic)&lt;br /&gt;
*[[Mapes de Mapbox]]&lt;br /&gt;
*[[tag route=railway a OSM. Línies de Ferrocarril catalanes]]&lt;br /&gt;
*[[Cales de Menorca]] i altres exemples (tossa, tossal)&lt;br /&gt;
*[[30DayMapChallenge]]&lt;br /&gt;
*Elevation API per generar mapes en relleu: https://elevationapi.com/&lt;br /&gt;
*[[Llibreria procedural-gl]] (mapes 3D tipus Google Earth i Relieve)&lt;br /&gt;
*[[Curs GDS (Dani Arribas)]]&lt;br /&gt;
*[[Catalunya Màgica]]&lt;br /&gt;
*[[Topònims Quintana]]&lt;br /&gt;
*[[Rutes GPS Joanillo]]&lt;br /&gt;
*[[Rutes BTT Joanillo]] (visió global)&lt;br /&gt;
*[[Municipis de Catalunya]]&lt;br /&gt;
*[[La Palma Volcano Resort]]&lt;br /&gt;
*[[CatGeoQuest]] (TBD)&lt;br /&gt;
*[[Montseny]] (TBD)&lt;br /&gt;
*[[Tracking BTT]] (TBD, eliminar)&lt;br /&gt;
*[[POLS: Pumpkin Outdoors Location Sharing]]&lt;br /&gt;
&lt;br /&gt;
=Web Services, APIs=&lt;br /&gt;
*[[API de openweathermap.org, thingful.net (Internet of Things)]]&lt;br /&gt;
*[[API de Strava]] (març 2021)&lt;br /&gt;
&lt;br /&gt;
=Web Data Extraction=&lt;br /&gt;
*[[Web Data Extraction]]&lt;br /&gt;
*[[Firefox add-on programming]] (Executar un bash script des del Firefox)&lt;br /&gt;
*jmining&lt;br /&gt;
=AWS: Amazon Web Services. Cloud=&lt;br /&gt;
*[[AWS: Amazon Web Services. Cloud]]&lt;br /&gt;
&lt;br /&gt;
=Informàtica musical=&lt;br /&gt;
[[Imatge:Ustudioware.jpg|thumbnail]]&lt;br /&gt;
*[[Fil de la història]]&lt;br /&gt;
*[[Windows: feines fetes]]. Midishare, JMusic, Invaders,...&lt;br /&gt;
*[[Ubuntu Studio]]&lt;br /&gt;
*[[ALSA: Advanced Linux Sound Architecture]]&lt;br /&gt;
*[[JACK: Audio Connection Kit]]&lt;br /&gt;
*[[kernel RT i variants]]&lt;br /&gt;
*[[Midishare]]&lt;br /&gt;
*[[Edirol UA-25 EX]]&lt;br /&gt;
*[[Terratec DMX 6FIRE 24/96]]&lt;br /&gt;
*[[Yamaha WX-5 Wind Controller]]&lt;br /&gt;
*[[Alesis DM5]]&lt;br /&gt;
*[[Drum Kit]]&lt;br /&gt;
*[[Foot Controllers]]&lt;br /&gt;
*[[Sintetitzador Roland JV-2080]]&lt;br /&gt;
*[[Sintetitzador Roland JV-1010]]&lt;br /&gt;
*[[Sintetitzador MeeBlip]]&lt;br /&gt;
*[[M-Audio Axiom 25]]&lt;br /&gt;
*[[M-AUDIO MIDAIR]] Midi Wireless System&lt;br /&gt;
*[[Electrònica MIDI]]&lt;br /&gt;
*[[Projectes d'Informàtica Musical]]&lt;br /&gt;
*[[Enllaços Informàtica Musical]]&lt;br /&gt;
*[[Hardware Audio]]&lt;br /&gt;
*[[Altres distribucions Linux orientades a audio]]&lt;br /&gt;
*[[MIDI Clock Sync (How machines stay in sync)]]&lt;br /&gt;
*Projecte 50 Ways to Play Una Plata d'Enciam: [[Llistats_de_maneres_de_tocar_Una_Plata_d'Enciam]]&lt;br /&gt;
*[[OSC: Open Sound Control]]&lt;br /&gt;
*[[Síntesi d'Audio]]&lt;br /&gt;
*[[fer vídeos per al Youtube II]]&lt;br /&gt;
*[[Gravar les veus. Cercant la qualitat]]&lt;br /&gt;
*[[Fitxers MIDI (SMF). Format]]&lt;br /&gt;
*[[Cercant el so de saxofon]]&lt;br /&gt;
*[[Programació/APIs amb C/C++]]&lt;br /&gt;
*[[Música algorísmica]]&lt;br /&gt;
*[[EWI-USB amb la Raspberry Pi]]&lt;br /&gt;
*[[Mopidy-MPD-mpc]]&lt;br /&gt;
&lt;br /&gt;
=Electrònica=&lt;br /&gt;
[[Fitxer:13317017449743365.png|50px]]&lt;br /&gt;
*[[Aplicació inventari.inventari.joanillo.org]]&lt;br /&gt;
*[[Base de dades electrònica]]: http://wikijoan.dyndns.org/electronica/llistar_recursos.php&lt;br /&gt;
*[[enllaços electrònica]]&lt;br /&gt;
*[[Eagle CadSoft]]&lt;br /&gt;
*[[KiCAD i pcb2gcode]]&lt;br /&gt;
*[[fer plaques PCB]]&lt;br /&gt;
*[[fer plaques PCB amb màquina CNC]] (drilling and milling)&lt;br /&gt;
*[[GEDA]]: GEDA: GPL'd suite and toolkit of Electronic Design Automation tools&lt;br /&gt;
*[[Projectes d'Electrònica]]&lt;br /&gt;
*[[Arduino]]&lt;br /&gt;
*[[Arduino: programació dirigida per events]]&lt;br /&gt;
*[[Música amb Arduino]]&lt;br /&gt;
*[[Arduino i HTC Dream]]&lt;br /&gt;
*[[Paperduino]]&lt;br /&gt;
*[[Robot Asuro]]&lt;br /&gt;
*[[Robot Zowi de BQ]]&lt;br /&gt;
*[[cartrobot: robot de cartró amb materials reciclats]]&lt;br /&gt;
*[[Arduino i driver USB]]&lt;br /&gt;
*[[Raspberry Pi]]&lt;br /&gt;
*[[Raspberry Pi: Internet Ràdio]]&lt;br /&gt;
*[[Raspberry Pi. Sensor de temperatura. Domòtica]]&lt;br /&gt;
*[[Raspberry Pi. Programació dels pins GPIO i exapansió dels pins amb I2C. Amb C i C++]]&lt;br /&gt;
*[[Cacera fotogràfica amb Raspberry Pi]]&lt;br /&gt;
*[[fonts d'alimentació, reflexions]]&lt;br /&gt;
*[[Tècniques soldadura/desoldadura]]&lt;br /&gt;
*[[Oscil.loscopi Hameg 203-7]]&lt;br /&gt;
*[[Generador de funcions Promax GF-232]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[Recreatives, Arcade, RetroPlaneta.com]]&lt;br /&gt;
*[[Sistema d'amplificació autònom]]&lt;br /&gt;
*[[Curs MIT: Circuits and Electronics (6.002x)]]&lt;br /&gt;
*[[Simulador de circuits: ngspice, gschem, xcircuit]]&lt;br /&gt;
*[[Simulador de circuits: LTSpice IV]]&lt;br /&gt;
*[[Beagle Board]]&lt;br /&gt;
*[[Pràctiques d'electrònica]]&lt;br /&gt;
*[[Insectes robot]]&lt;br /&gt;
*[[Dispositius USB amb V-USB i microcontroladors AVR]]&lt;br /&gt;
*[[Pinball/milloncete electromecànic]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[FPGAwars]]&lt;br /&gt;
*[[Programador EEPROM amb Arduino]] (programador paral.lel)&lt;br /&gt;
*[[Home-Built Z-80 Computer]]&lt;br /&gt;
*[[Caixa niu, Pep Gener]]&lt;br /&gt;
*[[Makerbuino]]&lt;br /&gt;
*[[Capacitive touch switch]]&lt;br /&gt;
*[[Audiobook]] (TBD)&lt;br /&gt;
*[[Speedometer d'agulla]]&lt;br /&gt;
*[[Rotary encoder]]&lt;br /&gt;
*[[Rètol lluminós amb temporitzador. Regal Maria]]&lt;br /&gt;
*[[Targetes de regal musicals - greeting cards]] (audio recorder module chip)&lt;br /&gt;
*[[Levitació magnètica. Kit]]&lt;br /&gt;
*[[Hard drive motors (brushless, BLDC) using Arduino]]&lt;br /&gt;
*[[Ràdio enllaç Morse]]&lt;br /&gt;
&lt;br /&gt;
=IoT, Internet of Things=&lt;br /&gt;
*[[IoT, Raspberry Pi, RESTful web services]]&lt;br /&gt;
*[[IoT, cursos i apunts]]&lt;br /&gt;
*[[Pràctica IoT: NodeMCU i sensor BME280. Plataforma Thingspeak]]&lt;br /&gt;
*[[NodeRED]]&lt;br /&gt;
*[[Mosquitto MQTT Broker a la RPi]]&lt;br /&gt;
*[[Minigateway LORA d'un canal]]&lt;br /&gt;
*[[Gateway LORA TTN Cat]]&lt;br /&gt;
*[[Node TTN amb TTGO]]&lt;br /&gt;
*[[Node autònom amb alimentació solar, antena DIY, Arduino Pro Micro i transceiver RFM95]]&lt;br /&gt;
*[[Caseta del Pere]]&lt;br /&gt;
&lt;br /&gt;
=Mecànica i bricolatge=&lt;br /&gt;
*[[Funcionament del volant. Wheel steering system]]&lt;br /&gt;
*[[Ensabatillar el saxofon]]&lt;br /&gt;
*[[Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina CNC 3040T]]&lt;br /&gt;
*[[Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Torn DIY (Lathe)]]&lt;br /&gt;
*[[Juego de machos y terrajas]]&lt;br /&gt;
*[[Solenoides]]&lt;br /&gt;
*PCB Holder: http://makerplane.org/?p=1311&lt;br /&gt;
*[[Proveïdors: metall, fusta, etc]]&lt;br /&gt;
*[[Fabricació de molles]]&lt;br /&gt;
*[[Treballar el vidre]]&lt;br /&gt;
*[[Disseny de coffee tables. Idees]]&lt;br /&gt;
*[[Trucos fusteria]]&lt;br /&gt;
*[[Bernissar i pulir la fusta]]&lt;br /&gt;
*[[Màquines i mecanismes]]. Marble machines, kinetic sculpture, perpetual motion, goldberg machines, mecanismes d'escapament, etc.&lt;br /&gt;
*[[Màquina de núvols de sucre]]&lt;br /&gt;
*[[Barco de ràdio control. RC Boat]]&lt;br /&gt;
*[[Idea Hallmark Happy Tappers]] (TBD)&lt;br /&gt;
*[[Cúpules de Leonardo da Vinci]]&lt;br /&gt;
*[[Mordassa per fer marcs]]&lt;br /&gt;
*PCB Holder (TBD)&lt;br /&gt;
*[[Segellar cantons de conglomerat i MDF]]&lt;br /&gt;
*[[Marble Climbing Machine with cardboard]] (regal pel pere, juny 2018)&lt;br /&gt;
&lt;br /&gt;
=Energia solar=&lt;br /&gt;
*[[Curs de la universitat de Delft: DelET.3034TU Solar Energy]]&lt;br /&gt;
*[[Aspectes pràctics instal·lació solar fotovoltaica]]&lt;br /&gt;
&lt;br /&gt;
=Projectes de video=&lt;br /&gt;
*[[Projectes de video]]&lt;br /&gt;
*[[monòlegs]]&lt;br /&gt;
*[[Pyramid hologram]]&lt;br /&gt;
&lt;br /&gt;
=Altres Projectes=&lt;br /&gt;
*[[Conversa amb robot. Combinació TTS i reconeixement de veu]]&lt;br /&gt;
&lt;br /&gt;
=TAMIE=&lt;br /&gt;
*[[TAMIE: Tecnologies Avançades per al Muntatge d'Instal·lacions i Exposicions]]&lt;br /&gt;
&lt;br /&gt;
=50 Ways to Play Una Plata d'Enciam=&lt;br /&gt;
*50 Ways... al blog: [http://www.joanillo.org/?cat=13 http://www.joanillo.org/?cat=13]&lt;br /&gt;
*[[Introducció al projecte 50 Ways to Play Una Plata d'Enciam]]&lt;br /&gt;
*[[fitxers lilypond Una Plata d'Enciam]]&lt;br /&gt;
*[[llistats de maneres de tocar Una Plata d'Enciam]]&lt;br /&gt;
&lt;br /&gt;
=Convocatoria VIDA de la Fundación Telefónica=&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 12.0]]&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 13.0]]&lt;br /&gt;
&lt;br /&gt;
=5 maneres de calcular g (5_ways_2_g)=&lt;br /&gt;
*[[5_ways_2_g]]&lt;br /&gt;
=Twitter robot=&lt;br /&gt;
*[[Twitter API]]&lt;br /&gt;
*[[Twitter robot]]&lt;br /&gt;
&lt;br /&gt;
=Pràctiques de Física amb arduino=&lt;br /&gt;
*[[Idees Pràctiques de Física amb arduino]]&lt;br /&gt;
&lt;br /&gt;
=Manualitats=&lt;br /&gt;
*[[Cartró pedra, Paper Maché]]&lt;br /&gt;
*[[Transfer a fusta]]&lt;br /&gt;
&lt;br /&gt;
=Magical Dolls=&lt;br /&gt;
*[[Idees Magical Dolls]]&lt;br /&gt;
&lt;br /&gt;
=Obres d'art, exposicions, electronic artwork=&lt;br /&gt;
*[[Obres d'art, exposicions, electronic artwork]]&lt;br /&gt;
&lt;br /&gt;
= ToDo =&lt;br /&gt;
*[[ToDo]]&lt;br /&gt;
&lt;br /&gt;
= Altres =&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ How To Geek Ubuntu]&lt;br /&gt;
*[[Aircrack]]&lt;br /&gt;
*[[Configuració router Local]]&lt;br /&gt;
*[[Tutorial Bash]]&lt;br /&gt;
*[[The Computational Beauty of Nature]]&lt;br /&gt;
*[[Notes per a la compra d'un ordinador]]&lt;br /&gt;
*[[Notes per a la compra de hardware a Thomann]]&lt;br /&gt;
*[[ZX Spectrum]]&lt;br /&gt;
*[[LATEX]] (novembre 2018, novembre 2019, maig 2021)&lt;br /&gt;
*[[Portàtil Chuwi Minibook X]], novembre 2024&lt;br /&gt;
&lt;br /&gt;
=Eines per a l'aprenentatge d'idiomes=&lt;br /&gt;
*[[Diccionaris i traductors en consola]]&lt;br /&gt;
*[[Entrenadors de Vocabulari]]&lt;br /&gt;
*[[Entrenador de Vocabulari: LANGUAGE TRAINER (LANGTRAINER)]]&lt;br /&gt;
&lt;br /&gt;
=Artròpodes i Insectes=&lt;br /&gt;
*Artròpodes i Insectes (TBD)&lt;br /&gt;
&lt;br /&gt;
=Màquina AMD Ryzen 7 5800X RTX 5060 Ti=&lt;br /&gt;
*[[Màquina AMD Ryzen 7 5800X RTX 5060 Ti]]&lt;br /&gt;
*[[Ollama: Models locals LLM]]&lt;br /&gt;
&lt;br /&gt;
=Tasques PLN i Tecnologies del Llenguatge=&lt;br /&gt;
* [[STT: Transcripció àudio català (i castellà)]]&lt;br /&gt;
* [[Traducció castellà-català]]&lt;br /&gt;
&lt;br /&gt;
=Treball Final de Màster (TFM) Màster Tecnologies del Llenguatge=&lt;br /&gt;
* [[RAG. Flux de treball]]&lt;br /&gt;
&lt;br /&gt;
Anirem analitzant per parts cadascun dels components d'un RAG&lt;br /&gt;
* [[RAG: recol·lecció de documents]]&lt;br /&gt;
* [[RAG: split/chunking]] (TODO)&lt;br /&gt;
* [[RAG: embeddings en català]]&lt;br /&gt;
* [[QDrant. Bases de dades semàntiques]]&lt;br /&gt;
* [[RAG: Retrieval]] (TODO)&lt;br /&gt;
* [[RAG: Context]] (TODO)&lt;br /&gt;
* [[RAG: LLM amb Ollama]] (TODO)&lt;br /&gt;
* [[RAG: flux de treball complet, posar-ho tot junt]] (TODO)&lt;br /&gt;
* [[Document 20, per documentar i esborrar]]&lt;br /&gt;
&lt;br /&gt;
=Joan Quintana Compte=&lt;br /&gt;
*[[Curriculum Vitae Joan Quintana Compte]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299227</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299227"/>
		<updated>2026-10-10T18:24:16Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** https://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Joan Quintana&lt;br /&gt;
** https://www.joanillo.org/ | Joanillo Blog&lt;br /&gt;
** https://portfolio.joanillo.org/ | Portfolio&lt;br /&gt;
&lt;br /&gt;
*joanillo.org Planet&lt;br /&gt;
**https://rutesgps.joanillo.org/ | GPS Routes&lt;br /&gt;
**https://dolmens.joanillo.org/ | Dòlmens Cat&lt;br /&gt;
**https://langtrainer.joanillo.org | LangTrainer&lt;br /&gt;
&lt;br /&gt;
*Màster Tecnologies Llenguatge&lt;br /&gt;
** https://wiki.joanillo.org/index.php/Joanillo_mediawiki:_INS_Jaume_Balmes#M.C3.A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti | Màquina NVidia&lt;br /&gt;
** https://wiki.joanillo.org/index.php/Joanillo_mediawiki:_INS_Jaume_Balmes#Tasques_PLN_i_Tecnologies_del_Llenguatge | Tasques PLN&lt;br /&gt;
** https://wiki.joanillo.org/index.php/Joanillo_mediawiki:_INS_Jaume_Balmes#Treball_Final_de_M.C3.A0ster_.28TFM.29_M.C3.A0ster_Tecnologies_del_Llenguatge | TFM&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299226</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299226"/>
		<updated>2026-10-10T18:23:11Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Joan Quintana&lt;br /&gt;
** http://www.joanillo.org/ | Joanillo Blog&lt;br /&gt;
** http://portfolio.joanillo.org/ | Portfolio&lt;br /&gt;
&lt;br /&gt;
*joanillo.org Planet&lt;br /&gt;
**http://rutesgps.joanillo.org/ | GPS Routes&lt;br /&gt;
**http://dolmens.joanillo.org/ | Dòlmens Cat&lt;br /&gt;
**http://langtrainer.joanillo.org | LangTrainer&lt;br /&gt;
&lt;br /&gt;
*Màster Tecnologies Llenguatge&lt;br /&gt;
** http://wiki.joanillo.org/index.php/M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti | Màquina NVidia&lt;br /&gt;
** https://wiki.joanillo.org/index.php/Joanillo_mediawiki:_INS_Jaume_Balmes#Tasques_PLN_i_Tecnologies_del_Llenguatge | Tasques PLN&lt;br /&gt;
** https://wiki.joanillo.org/index.php/Joanillo_mediawiki:_INS_Jaume_Balmes#Treball_Final_de_M.C3.A0ster_.28TFM.29_M.C3.A0ster_Tecnologies_del_Llenguatge | TFM&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299225</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299225"/>
		<updated>2026-10-10T18:18:34Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Joan Quintana&lt;br /&gt;
** http://www.joanillo.org/ | Joanillo Blog&lt;br /&gt;
** http://portfolio.joanillo.org/ | Portfolio&lt;br /&gt;
&lt;br /&gt;
*joanillo.org Planet&lt;br /&gt;
**http://rutesgps.joanillo.org/ | GPS Routes&lt;br /&gt;
**http://dolmens.joanillo.org/ | Dòlmens Cat&lt;br /&gt;
**http://langtrainer.joanillo.org | LangTrainer&lt;br /&gt;
&lt;br /&gt;
*Màster Tecnologies Llenguatge&lt;br /&gt;
** http://wiki.joanillo.org/index.php/M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti | Màquina NVidia&lt;br /&gt;
** http://wiki.joanillo.org/index.php/Tasques_PLN_i_Tecnologies_del_Llenguatge | Tasques PLN&lt;br /&gt;
** http://wiki.joanillo.org/index.php/Treball_Final_de_M%C3%A0ster_%28TFM%29_M%C3%A0ster_Tecnologies_del_Llenguatge | TFM&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299224</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299224"/>
		<updated>2026-10-10T18:17:01Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Joan Quintana&lt;br /&gt;
** http://www.joanillo.org/ | Joanillo Blog&lt;br /&gt;
** http://portfolio.joanillo.org/ | Portfolio&lt;br /&gt;
&lt;br /&gt;
*joanillo.org Planet&lt;br /&gt;
**http://rutesgps.joanillo.org/ | GPS Routes&lt;br /&gt;
**http://dolmens.joanillo.org/ | Dòlmens Cat&lt;br /&gt;
**http://langtrainer.joanillo.org | LangTrainer&lt;br /&gt;
&lt;br /&gt;
*Màster Tecnologies Llenguatge&lt;br /&gt;
** http://wiki.joanillo.org/index.php/M.C3.A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti | Màquina NVidia&lt;br /&gt;
** http://wiki.joanillo.org/index.php/Tasques_PLN_i_Tecnologies_del_Llenguatge | Tasques PLN&lt;br /&gt;
** http://wiki.joanillo.org/index.php/Treball_Final_de_M.C3.A0ster_.28TFM.29_M.C3.A0ster_Tecnologies_del_Llenguatge | TFM&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299223</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299223"/>
		<updated>2026-10-10T18:14:53Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Joan Quintana&lt;br /&gt;
** http://www.joanillo.org/ | Joanillo Blog&lt;br /&gt;
** http://portfolio.joanillo.org/ | Portfolio&lt;br /&gt;
&lt;br /&gt;
*joanillo.org Planet&lt;br /&gt;
**http://rutesgps.joanillo.org/ | GPS Routes&lt;br /&gt;
**http://dolmens.joanillo.org/ | Dòlmens Cat&lt;br /&gt;
**http://langtrainer.joanillo.org | LangTrainer&lt;br /&gt;
&lt;br /&gt;
*Màster Tecnologies Llenguatge&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Màquina NVidia&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Tasques PLN&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | TFM&lt;br /&gt;
&lt;br /&gt;
Màquina AMD Ryzen 7 5800X RTX 5060 Ti&lt;br /&gt;
Tasques PLN i Tecnologies del Llenguatge&lt;br /&gt;
Treball Final de Màster (TFM) Màster Tecnologies del Llenguatge&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299222</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=MediaWiki:Sidebar&amp;diff=299222"/>
		<updated>2026-10-10T18:01:32Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Joan Quintana&lt;br /&gt;
** http://www.joanillo.org/ | Joanillo Blog&lt;br /&gt;
** http://portfolio.joanillo.org/ | Portfolio&lt;br /&gt;
&lt;br /&gt;
*joanillo.org Planet&lt;br /&gt;
**http://rutesgps.joanillo.org/ | GPS Routes&lt;br /&gt;
**http://dolmens.joanillo.org/ | Dòlmens Cat&lt;br /&gt;
**http://langtrainer.joanillo.org | LangTrainer&lt;br /&gt;
&lt;br /&gt;
*Màster Tecnologies Llenguatge&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Màquina RTX&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | Tasques PLN&lt;br /&gt;
** http://wiki.joanillo.org/index.php/P%C3%A0gina_principal#Joan_Quintana_Compte | TFM&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299221</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299221"/>
		<updated>2026-10-10T17:58:08Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Instal·lació Ollama=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -fsSL https://ollama.com/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ollama -v&lt;br /&gt;
ollama version is 0.34.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl status ollama&lt;br /&gt;
● ollama.service - Ollama Service&lt;br /&gt;
     Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Tue 2026-09-15 23:31:14 CEST; 29s ago&lt;br /&gt;
   Main PID: 7980 (ollama)&lt;br /&gt;
      Tasks: 15 (limit: 34856)&lt;br /&gt;
     Memory: 72.6M (peak: 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Model Qwen3.5 9B=&lt;br /&gt;
&lt;br /&gt;
És probablement el que més et recomanaria afegir. Qwen3.5 és multimodal i la versió 9B ocupa uns 6,6 GB, amb context de 256K.&lt;br /&gt;
&lt;br /&gt;
Per tenir un model ràpid per al dia a dia, és molt més interessant que fer servir sempre el teu 27B.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama pull qwen3.5:9b&lt;br /&gt;
ollama run qwen3.5:9b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Model Gemma 3 12B=&lt;br /&gt;
&lt;br /&gt;
Aquest és especialment interessant perquè és multimodal: pot treballar amb text i imatges, té context de 128K i suporta més de 140 idiomes. La versió 12B ocupa uns 8,1 GB.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama pull gemma3:12b&lt;br /&gt;
ollama run gemma3:12b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Pot treballar amb imatges. Ho podem fer mitjançant la API de la següent manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IMG=$(base64 -w 0 /home/joan/projectes/ratoli.jpeg)&lt;br /&gt;
&lt;br /&gt;
curl http://localhost:11434/api/chat \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d &amp;quot;{&lt;br /&gt;
    \&amp;quot;model\&amp;quot;: \&amp;quot;gemma3:12b\&amp;quot;,&lt;br /&gt;
    \&amp;quot;messages\&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        \&amp;quot;role\&amp;quot;: \&amp;quot;user\&amp;quot;,&lt;br /&gt;
        \&amp;quot;content\&amp;quot;: \&amp;quot;Descriu detalladament aquesta imatge.\&amp;quot;,&lt;br /&gt;
        \&amp;quot;images\&amp;quot;: [\&amp;quot;$IMG\&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    \&amp;quot;stream\&amp;quot;: false&lt;br /&gt;
  }&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Resposta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;model&amp;quot;:&amp;quot;gemma3:12b&amp;quot;,&amp;quot;created_at&amp;quot;:&amp;quot;2026-09-18T08:21:25.044041898Z&amp;quot;,&amp;quot;message&amp;quot;:{&amp;quot;role&amp;quot;:&amp;quot;assistant&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;Aquí teniu una descripció detallada de la imatge:\n\n**Descripció general:**\n\nLa imatge mostra un ratolí de pèls marrons, vist de costat, sobre un fons blanc. La il·luminació és clara i uniforme, destacant les seves característiques.\n\n**Detalls específics:**\n\n*   **Animal:** El ratolí és de mida mitjana, amb una postura alerta. El seu pelatge és dens i de color marró grisenc, amb un to lleugerament més clar a la panxa.\n*   **Cap:** La seva cara és rosada, amb un musell llarg i una punta de nas rosada. Té ulls petits, rodons i negres, amb una mica de brillantor a la llum. Les seves orelles són grans, triangulals i de color rosa pàlid. Les vibrisses són llargues i blanques, i es projecten cap endavant.\n*   **Cos:** El cos és arrodonit i proporcional a la cap. Les potes davanteres són petites i amb urpes. La cua és fina i coberta de pelusa.\n*   **Fons:** El fons és totalment blanc, sense text o elements addicionals. Això ajuda a que l'atenció se centri completament en el ratolí.\n\n**Estil i composició:**\n\nLa imatge és una fotografia de primer pla que permet apreciar els detalls de l'animal. La composició és simple i equilibrada, posant l'èmfasi en la naturalesa del ratolí.&amp;quot;},&amp;quot;done&amp;quot;:true,&amp;quot;done_reason&amp;quot;:&amp;quot;stop&amp;quot;,&amp;quot;total_duration&amp;quot;:10394341884,&amp;quot;load_duration&amp;quot;:1237038,&amp;quot;prompt_eval_count&amp;quot;:289,&amp;quot;prompt_eval_cached_count&amp;quot;:0,&amp;quot;prompt_eval_duration&amp;quot;:2987531000,&amp;quot;eval_count&amp;quot;:344,&amp;quot;eval_duration&amp;quot;:6779488000}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Veiem que hem accedit a la API pel port 11434:&lt;br /&gt;
&lt;br /&gt;
Sí. Aquesta és una de les coses més interessants d'Ollama: quan l'executes, actua també com un servidor HTTP local. Això vol dir que qualsevol programa que s'executi al teu ordinador pot parlar amb Ollama enviant peticions HTTP.&lt;br /&gt;
&lt;br /&gt;
* http://localhost:11434&lt;br /&gt;
&lt;br /&gt;
vol dir essencialment: &amp;quot;Connecta't al servidor Ollama que està funcionant en aquest mateix ordinador.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Model Mistral Small 3.2 24B=&lt;br /&gt;
&lt;br /&gt;
Aquest és probablement el competidor més interessant del teu Qwen3.5 27B Q3. És un 24B Q4_K_M que ocupa aproximadament 15 GB, té context de 128K i és multimodal. Mistral destaca, a més, per instruction following i function calling.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama pull mistral-small3.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
provo el model amb curl i amb script python:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl http://localhost:11434/api/chat \&lt;br /&gt;
  -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
  -d '{&lt;br /&gt;
    &amp;quot;model&amp;quot;: &amp;quot;mistral-small3.2&amp;quot;,&lt;br /&gt;
    &amp;quot;messages&amp;quot;: [&lt;br /&gt;
      {&lt;br /&gt;
        &amp;quot;role&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
        &amp;quot;content&amp;quot;: &amp;quot;vull fer una petita narració en català (unes 100 paraules) que inclogui les paraules: atapeït, somicar i grapejar&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;stream&amp;quot;: false&lt;br /&gt;
  }'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
resposta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;model&amp;quot;:&amp;quot;mistral-small3.2&amp;quot;,&amp;quot;created_at&amp;quot;:&amp;quot;2026-09-18T08:27:18.102796986Z&amp;quot;,&amp;quot;message&amp;quot;:{&amp;quot;role&amp;quot;:&amp;quot;assistant&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;Aquí tens una petita narració:\n\nEl petit en Joan tornava de l'escola atapeït de tasques i cansament. En entrar a casa, va veure el seu gos, Tolo, somicar a la vora de la finestra. \&amp;quot;Tolo, no et grapegis tant!\&amp;quot;, li va dir rient. El gos va obrir un ull i va movir la cua, com si entengués cada paraula. Joan va deixar la motxilla i va anar a la cuina per preparar un entrepà. Mentre menjava, Tolo va saltar al seu reguit i va començar a grapejar amb alegria. \&amp;quot;Estàs insuportable!\&amp;quot;, va riure Joan, però en el fons li feia il·lusió tenir-lo al seu costat.\n\n(100 paraules)&amp;quot;},&amp;quot;done&amp;quot;:true,&amp;quot;done_reason&amp;quot;:&amp;quot;stop&amp;quot;,&amp;quot;total_duration&amp;quot;:16327480542,&amp;quot;load_duration&amp;quot;:5403826250,&amp;quot;prompt_eval_count&amp;quot;:543,&amp;quot;prompt_eval_cached_count&amp;quot;:0,&amp;quot;prompt_eval_duration&amp;quot;:663015000,&amp;quot;eval_count&amp;quot;:180,&amp;quot;eval_duration&amp;quot;:10258082000}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ho posem en el script ''narracio.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import ollama&lt;br /&gt;
&lt;br /&gt;
response = ollama.chat(&lt;br /&gt;
    model='mistral-small3.2',&lt;br /&gt;
    messages=[&lt;br /&gt;
        {&lt;br /&gt;
            'role': 'user',&lt;br /&gt;
            'content': (&lt;br /&gt;
                'vull fer una petita narració en català '&lt;br /&gt;
                '(unes 100 paraules) que inclogui les paraules: '&lt;br /&gt;
                'atapeït, somicar i grapejar'&lt;br /&gt;
            )&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
print(response['message']['content'])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per executar-ho:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pip install ollama&lt;br /&gt;
error: externally-managed-environment&lt;br /&gt;
&lt;br /&gt;
× This environment is externally managed&lt;br /&gt;
╰─&amp;gt; To install Python packages system-wide, try apt install&lt;br /&gt;
    python3-xyz, where xyz is the package you are trying to&lt;br /&gt;
    install.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Millor crear un venv&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ollama-mistral-small-python&lt;br /&gt;
cd ollama-mistral-small-python&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
pip install ollama&lt;br /&gt;
joe narracio.py&lt;br /&gt;
...&lt;br /&gt;
python3 narracio.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
resposta:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Aquí tens una petita narració de 100 paraules:&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
El petit poble de Montclar estava **atapeït** de turistes aquell estiu. En Marc, un noi de dotze anys, es **somicava** cada nit per escapar del soroll. Una vesprada, mentre **grapejava** per les velles carrerons, va trobar una porta secreta que portava a una gruta subterrània. Allà, va descobrir un antic rellotge de sorra que, segons la llegenda, podia aturar el temps. Amb curiositat, el va girar i, de sobte, tot es va quedar immòbil. Els turistes van quedar congelats, i el poble va recuperar la seva tranquil·litat. En Marc va aprendre que, a vegades, el millor és viure el present.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si volem provar el model directament:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ollama run mistral-small3.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Models instal·lats=&lt;br /&gt;
ara els models que tinc instal·lats són:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ollama list&lt;br /&gt;
NAME                       ID              SIZE      MODIFIED       &lt;br /&gt;
mistral-small3.2:latest    5a408ab55df5    15 GB     11 minutes ago    &lt;br /&gt;
gemma3:12b                 f4031aab637d    8.1 GB    24 minutes ago    &lt;br /&gt;
qwen3.5:9b                 6488c96fa5fa    6.6 GB    28 minutes ago    &lt;br /&gt;
qwen3.5:27b-q3             699f7cee9559    14 GB     40 hours ago      &lt;br /&gt;
qwen3:8b                   500a1f067a9f    5.2 GB    2 days ago&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299220</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299220"/>
		<updated>2026-10-10T17:51:20Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* PyTorch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
==Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp==&lt;br /&gt;
La única cosa que necessitem és un punt de muntatge, i així tindrem mapejada en el portàtil una carpeta del servidor, i hi podrem accedir com si fos local&lt;br /&gt;
&lt;br /&gt;
En el portàtil instal·lem sshfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install sshfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el portàtil creem un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I muntem el directori de ''projectes/'' del servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja he de veure aquesta carpeta com si fos local.&lt;br /&gt;
&lt;br /&gt;
I ara amb el Sublime Text del portàtil puc treballar amb els fitxers del servidor.&lt;br /&gt;
&lt;br /&gt;
És a dir:&lt;br /&gt;
* /home/joan/projectes és el directori de treball en el servidor IA&lt;br /&gt;
* /home/joan/servidorIA és el punt de muntatge en el portàtil&lt;br /&gt;
&lt;br /&gt;
Repassem les comandes bàsiques de sshfs i scp, tant si treballem en la xarxa local com en la xarxa remota.&lt;br /&gt;
&lt;br /&gt;
Em puc connectar a un servidor via xarxa local o via xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I també sé fer un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Com faig el scp per enviar fitxers del portàtil al servidor, o del servidor al portàtil?&lt;br /&gt;
&lt;br /&gt;
Del portàtil al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp fitxer.txt joan@192.168.1.184:/home/joan/projectes/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota (fixa't en la -P majúscula, i que va abans de l'origen)&lt;br /&gt;
scp -P 2222 fitxer.txt joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Del servidor al portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp joan@192.168.1.184:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota&lt;br /&gt;
scp -P 2222 joan@79.156.157.3:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carpetes senceres: afegim -r (recursiu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -r -P 2222 ~/meu_projecte joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
===Execució pràctica PyTorch===&lt;br /&gt;
vull executar la pràctica d'IA del mòdul: 5073-EAC6-2627S1&lt;br /&gt;
&lt;br /&gt;
portàtil:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp cifar10.zip joan@192.168.1.184:~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
unzip cifar10.zip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i segons les instruccions del README:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd cifar10&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate        # Linux / macOS&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
pip install -r requirements.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i executem el projecte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 -m src.main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per tal de veure la VRAM que consumeix la RTX5060, en un altre terminar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@192.168.1.184&lt;br /&gt;
$ watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299219</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299219"/>
		<updated>2026-10-10T17:49:57Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Instal·lació Ollama=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -fsSL https://ollama.com/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ollama -v&lt;br /&gt;
ollama version is 0.34.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ systemctl status ollama&lt;br /&gt;
● ollama.service - Ollama Service&lt;br /&gt;
     Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabled)&lt;br /&gt;
     Active: active (running) since Tue 2026-09-15 23:31:14 CEST; 29s ago&lt;br /&gt;
   Main PID: 7980 (ollama)&lt;br /&gt;
      Tasks: 15 (limit: 34856)&lt;br /&gt;
     Memory: 72.6M (peak: 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299218</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299218"/>
		<updated>2026-10-10T17:24:00Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299217</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299217"/>
		<updated>2026-10-10T17:23:40Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299216</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299216"/>
		<updated>2026-10-10T17:21:48Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com|https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299215</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299215"/>
		<updated>2026-10-10T17:21:21Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com | https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299214</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299214"/>
		<updated>2026-10-10T17:21:09Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com | https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299213</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299213"/>
		<updated>2026-10-10T17:20:58Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299212</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299212"/>
		<updated>2026-10-10T17:20:37Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299211</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299211"/>
		<updated>2026-10-10T17:20:19Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
*[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com|https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299210</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299210"/>
		<updated>2026-10-10T17:20:00Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Model QWen 3.5 27B (quantitzat) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com|https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, octubre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299209</id>
		<title>Ollama: Models locals LLM</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ollama:_Models_locals_LLM&amp;diff=299209"/>
		<updated>2026-10-10T17:19:29Z</updated>

		<summary type="html">&lt;p&gt;Joan: Es crea la pàgina amb «=Model QWen 3.5 27B (quantitzat)= Installar QWen 3.5 27B  &amp;lt;pre&amp;gt; Quantització: Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanabl...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Model QWen 3.5 27B (quantitzat)=&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299208</id>
		<title>Joanillo mediawiki: INS Jaume Balmes</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Joanillo_mediawiki:_INS_Jaume_Balmes&amp;diff=299208"/>
		<updated>2026-10-10T17:19:12Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Màquina AMD Ryzen 7 5800X RTX 5060 Ti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per qualsevol consulta, enviar un mail a [mailto:joanqc_arroba_gmail_dot_com Joan Quintana]&lt;br /&gt;
=DAW. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[DAW-M06-WEC]]. Desenvolupament d'Aplicacions Web (DAW)&lt;br /&gt;
=ASIX. INS Jaume Balmes. FP Informàtica=&lt;br /&gt;
*[[ASIX-M09-IAW]]. Implantació d'Aplicacions Web (ASIX)&lt;br /&gt;
*[[ASIX-M10-UF2]]. Amplantació de Bases de dades (ASIX)&lt;br /&gt;
&lt;br /&gt;
=FP Informàtica: Contingut antic=&lt;br /&gt;
*[[Servidor BBDD]]&lt;br /&gt;
*[[ASIX-M11-SAD]]. Seguretat i Alta Disponibilitat&lt;br /&gt;
*[[DAI-C8-EC]]&lt;br /&gt;
*[[ASI-C6-ASGBD]]&lt;br /&gt;
*[[ASI-C3-IAIG]]&lt;br /&gt;
*[[Assignatura PHP]]&lt;br /&gt;
*[[LPI: Linux Professional Institute]]&lt;br /&gt;
*[[Normativa d'aula. Exemples]]&lt;br /&gt;
*[[Aula 44 (Ubuntu). Configuració]]&lt;br /&gt;
*[[Enviar notes als alumnes, fitxer CSV]]&lt;br /&gt;
*[[Extraescolar Robòtica 2015-2016]]&lt;br /&gt;
*[[Extraescolar Robòtica 2016-2017]] (Construcció d'un SIMON)&lt;br /&gt;
&lt;br /&gt;
= HowTo Ubuntu =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Alias]]&lt;br /&gt;
*Cercar fitxers amb find: https://help.ubuntu.com/community/find&lt;br /&gt;
*[[Cercar dins dels fitxers]] (i carpetes amb més fitxers)&lt;br /&gt;
*Expressions regulars: [[Expressions_Regulars]]&lt;br /&gt;
*[[Usuaris i grups]]&lt;br /&gt;
*[[Instal·lació Tomcat#Quant a les variables d'entorn]]&lt;br /&gt;
*[[Tips Linux]]&lt;br /&gt;
*'''Editors''': sudo apt-get install joe i sudo apt-get install scite. scite és l'equivalent al Notepad++ (de fet, el Notepad++ es basa en el scite)&lt;br /&gt;
*[[Màscara umask]]&lt;br /&gt;
*[[Establir l'hora del sistema]]&lt;br /&gt;
*Comprimir i descomprimir&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar czvf fitxer_comprimit.tgz fitxer1.txt fitxer2.txt dir1 dir2&lt;br /&gt;
tar xvzf fitxer_comprimit.tgz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Releases d'Ubuntu: es pot veure una taula a http://en.wikipedia.org/wiki/Ubuntu&lt;br /&gt;
*[[holamon amb diferents llenguatges de programació]]&lt;br /&gt;
*Per redirigir la sortida d'errors d'una comanda a fitxer: make 2&amp;gt; error.log&lt;br /&gt;
*utilitzar apt-get amb un proxy (institut): &lt;br /&gt;
Editem el fitxer /etc/apt/apt.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Acquire::http::Proxy &amp;quot;http://192.168.0.5:8080&amp;quot;; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
També: You can also set a proxy on the fly via a console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export http_proxy=&amp;quot;http://proxy&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you apt/aptitude... etc. from that console, it will use the specified proxy.&lt;br /&gt;
*comanda history (documentar)&lt;br /&gt;
*executar processos en background (&amp;amp;). http://www.networkdictionary.com/software/Linux331.php. (documentar)&lt;br /&gt;
*Trobar informació del processador:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
$ cat /proc/cpuinfo | grep MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Consum de memòria (ordenat per processos que consumeien més memòria):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ps --sort -rss -eo rss,pid,command | head&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===utilitats===&lt;br /&gt;
*[[bc: calculadora CLI]]&lt;br /&gt;
*'''pdftotext''': pdf to text, fa una conversió intel.ligent, de manera que el resultat queda bastant ben formatat. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pdftotext [options] &amp;lt;PDF-file&amp;gt; [&amp;lt;text-file&amp;gt;]&lt;br /&gt;
$ pdftotext -nopgbrk /home/joan/.aMule/Incoming/physical_computing.pdf /home/joan/.aMule/Incoming/physical_computing.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''Convertir un CD a mp3''':&lt;br /&gt;
http://installubuntu.blogspot.com/2006/09/como-convertir-cd-mp3.html&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install sound-juicer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el menú està a Aplicaciones &amp;gt; Sonido y vídeo &amp;gt; Extractor de sonidos de CD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Luego de abrir el programa que se encuentra en &amp;quot;Aplicaciones - sonido y vídeo - Extractor de música de CD's Sound juicer&amp;quot; debe seguir los siguientes pasos:&lt;br /&gt;
1. Ir a Editar - preferencias.&lt;br /&gt;
2. Hacer clic en el botón editar perfiles (abajo-derecha).&lt;br /&gt;
3. Crear un nuevo Profile haciendo clic en &amp;quot;Nuevo&amp;quot;.&lt;br /&gt;
4. Puede colocar el siguiente Nombre de perfil: Calidad de CD, con pérdida mp3.&lt;br /&gt;
5. Luego seleccionarlo y editarlo colocar en Descripción del perfil: Extracción MP3.&lt;br /&gt;
6. En Tubería Gstreamer copiar y pegar lo siguiente:&lt;br /&gt;
audio/x-raw-int,rate=44100,channels=2 ! lame name=enc&lt;br /&gt;
7. Digitar en &amp;quot;Extensión de archivo&amp;quot;: MP3&lt;br /&gt;
8. Seleccionar ¿Está activo?&lt;br /&gt;
9. Hacer clic en Aceptar, luego en &amp;quot;Cerrar&amp;quot; las dos veces siguientes y por último &amp;quot;Cerrar&amp;quot; el programa.&lt;br /&gt;
10. Volver a abrir Sound Juice, e ir a &amp;quot;Editar - Preferencia&amp;quot; y seleccionar en &amp;quot;Formato de salida&amp;quot; &amp;quot;calidad de cd, con pérdida mp3 (audio mp3)&lt;br /&gt;
- y por último cerrar.&lt;br /&gt;
De aquí en adelante debe convertir los CD's a MP3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Buidar la paperera de reciclatge''': important quan m'he quedat sense espai:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo rm -rf ~/.Trash/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per saber quines són les carpetes que ocupen més espai: '''ncdu''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install ncdu&lt;br /&gt;
$ ncdu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Passar de format DVD a mp4''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat *.VOB &amp;gt; movie.vob&lt;br /&gt;
$ ffmpeg -i movie.vob video.mp4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Utilitats de xarxa===&lt;br /&gt;
'''iperf''' per comprovar la velocitat real de xarxa entre dos punts.&lt;br /&gt;
*https://www.linode.com/docs/networking/diagnostics/install-iperf-to-diagnose-network-speed-in-linux/&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install iperf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
iPerf requires two systems because one system must act as a server, while the other acts as a client. The client connects to the server you're testing the speed of.&lt;br /&gt;
&lt;br /&gt;
On the node you plan to test, launch iPerf in server mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
On your second node, connect to the first. Replace 198.51.100.5 with the first node’s IP address.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iperf -c 192.168.0.116&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
Server listening on TCP port 5001&lt;br /&gt;
TCP window size: 85.3 KByte (default)&lt;br /&gt;
------------------------------------------------------------&lt;br /&gt;
[  4] local 192.168.0.116 port 5001 connected with 192.168.0.240 port 51900&lt;br /&gt;
[ ID] Interval       Transfer     Bandwidth&lt;br /&gt;
[  4]  0.0-10.0 sec   113 MBytes  94.1 Mbits/sec&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per tant la meva connexió és de 100 Mbits/sec (no arriba al teòric de 100).&lt;br /&gt;
&lt;br /&gt;
Si vull testejar un cable llarg per assegurar-me de què el seu rendiment és correcte, en un lloc on no hi ha connexió de xarxa, necessito dos portàtils amb IP fixa. Com que el cable és normal (no creuat), i per fer el test directe necessito un cable creuat, el que he de fer és dues possibilitats:&lt;br /&gt;
*empalmar un tros curt de cable creuat, i així el cable no creuat es converteix en creuat.&lt;br /&gt;
*utilitzar un switch/router, i posar el cable llarg al router, i un altre tros de cable normal també al router des de l'altre portàtil.&lt;br /&gt;
'''NOTA''': ara hi ha targetes de xarxa que poden treballar tant en cables creuats com no creuats.&lt;br /&gt;
===velocitat de la connexió inal·làmbrica (juny 2019)===&lt;br /&gt;
*https://www.cyberciti.biz/tips/linux-find-out-wireless-network-speed-signal-strength.html&lt;br /&gt;
Llista totes les xarxes wifi visibles:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Millor filtrar per la que ens interessa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nmcli dev wifi | grep JaumeBalmes&lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  79      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  65      ▂▄▆_  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  11    54 Mbit/s  42      ▂▄__  WPA1 WPA2 &lt;br /&gt;
   JaumeBalmes                    Infra  1     54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  12    54 Mbit/s  32      ▂▄__  WPA2      &lt;br /&gt;
   JaumeBalmes                    Infra  6     54 Mbit/s  19      ▂___  WPA1 WPA2 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ iwconfig wlp1s0 | grep -i --color signal&lt;br /&gt;
Link Quality=45/70  Signal level=-65 dBm &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ watch -n 1 cat /proc/net/wireless&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Conèixer especificacions del sistema===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -m&lt;br /&gt;
i686 -&amp;gt; 32 bits&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/cpuinfo&lt;br /&gt;
...&lt;br /&gt;
model name	: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
arquitectura i kernel version:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uname -r&lt;br /&gt;
3.2.0-49-generic-pae&lt;br /&gt;
&lt;br /&gt;
$ uname -a&lt;br /&gt;
Linux joan-poratolí gamer: Mars Gaming MM018rtatil 3.2.0-49-generic-pae #75-Ubuntu SMP Tue Jun 18 18:00:21 UTC 2013 i686 i686 i386 GNU/Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lscpu&lt;br /&gt;
Architecture:          i686&lt;br /&gt;
CPU op-mode(s):        32-bit, 64-bit&lt;br /&gt;
Byte Order:            Little Endian&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo lshw -c processor&lt;br /&gt;
  *-cpu:0                 &lt;br /&gt;
       description: CPU&lt;br /&gt;
       product: Intel(R) Core(TM) i5 CPU       M 520  @ 2.40GHz&lt;br /&gt;
       vendor: Intel Corp.&lt;br /&gt;
       physical id: 5&lt;br /&gt;
       bus info: cpu@0&lt;br /&gt;
       version: 6.5.5&lt;br /&gt;
       serial: 0002-0655-0000-0000-0000-0000&lt;br /&gt;
       slot: U2E1&lt;br /&gt;
       size: 1199MHz&lt;br /&gt;
       capacity: 2400MHz&lt;br /&gt;
...ratolí gamer: Mars Gaming MM018&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
memòria:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ free&lt;br /&gt;
             total       used       free     shared    buffers     cached&lt;br /&gt;
Mem:       3980780    1925680    2055100          0     141292     882996&lt;br /&gt;
-/+ buffers/cache:     901392    3079388&lt;br /&gt;
Swap:      4049916          0    4049916&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /proc/meminfo |grep MemTotal&lt;br /&gt;
MemTotal:    ratolí gamer: Mars Gaming MM018    3980780 kB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ vmstat -s&lt;br /&gt;
      3980780 K total memory&lt;br /&gt;
      1901032 K used memory&lt;br /&gt;
       878692 K active memory&lt;br /&gt;
       829180 K inactive memory&lt;br /&gt;
      2079748 K free memory&lt;br /&gt;
       141428 K buffer memory&lt;br /&gt;
       895400 K swap cache&lt;br /&gt;
      4049916 K total swap&lt;br /&gt;
            0 K used swap&lt;br /&gt;
      4049916 K free swap&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===ratolí gamer: Mars Gaming MM018===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
https://askubuntu.com/questions/19569/how-can-i-assign-actions-to-all-my-mouse-buttons&lt;br /&gt;
per saber quins botons del ratolí es reconeixen:&lt;br /&gt;
$ xev&lt;br /&gt;
&lt;br /&gt;
Per mapejar:&lt;br /&gt;
sudo apt-get install xbindkeys&lt;br /&gt;
&lt;br /&gt;
https://wiki.archlinux.org/index.php/Xbindkeys&lt;br /&gt;
&lt;br /&gt;
$ xbindkeys&lt;br /&gt;
Error : /home/joan/.xbindkeysrc not found or reading not allowed.&lt;br /&gt;
please, create one with 'xbindkeys --defaults &amp;gt; /home/joan/.xbindkeysrc'.&lt;br /&gt;
or, if you want scheme configuration style,&lt;br /&gt;
with 'xbindkeys --defaults-guile &amp;gt; /home/joan/.xbindkeysrc.scm'.&lt;br /&gt;
&lt;br /&gt;
xfce4-terminal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;xterm&amp;quot;do&lt;br /&gt;
#  control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot; control + b:2&lt;br /&gt;
&lt;br /&gt;
&amp;quot;xfce4-terminal&amp;quot;&lt;br /&gt;
    m:0x4 + c:37&lt;br /&gt;
    Control + Control_L &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Command&amp;quot;&lt;br /&gt;
    m:0x3 + c:50&lt;br /&gt;
    Shift + Shift_L &lt;br /&gt;
&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
    Control+Shift + Control_L | m:0x7 + c:37&lt;br /&gt;
(TBD)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===SHELL===&lt;br /&gt;
*[[Manuals de bash]]&lt;br /&gt;
*[[Script per a crear usuaris]]&lt;br /&gt;
*[[Canviar el prompt per defecte]]&lt;br /&gt;
*[[Truquets bash]]&lt;br /&gt;
*[[xclip. Portapapers, clipboard]]&lt;br /&gt;
*[[xdotool - command-line X11 automation tool]]&lt;br /&gt;
*Fer sudo sense demanar password (Ubuntu 12.04):&lt;br /&gt;
# User privilege specification&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo visudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Amb aquesta comanda estem editant el fitxer /etc/sudoers. Es tracta de posar ''NOPASSWD:'' per tal de què no demani pwd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
root    ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
&lt;br /&gt;
# Members of the admin group may gain root privileges&lt;br /&gt;
%admin ALL=(ALL) ALL&lt;br /&gt;
&lt;br /&gt;
# Allow members of group sudo to execute any command&lt;br /&gt;
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Paquets ===&lt;br /&gt;
*[[Instal·lar paquets]]&lt;br /&gt;
=== Grub2 ===&lt;br /&gt;
*[[Grub2]]&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració d'Apache amb Ubuntu]]&lt;br /&gt;
*[[Virtual Host: www.empresalibre.org, wiki.empresalibre.org, blog.empresalibre.org]]&lt;br /&gt;
*[[AWStats: analitzant les estadístiques]]&lt;br /&gt;
*[[Hosting projecte. Possibilitats]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració de Postgres]]&lt;br /&gt;
*[[Còpies de seguretat de Postgres I]]: pg_dump (és el que utilizo per fer els scripts de còpia de seguretat)&lt;br /&gt;
*[[Còpies de seguretat de Postgres II]]: Còpia física del directori data/&lt;br /&gt;
*[[Còpies de seguretat de Postgres III]]: Point-In-Time-Recovery, PITR&lt;br /&gt;
*[[Pràctiques de còpia de seguretat Postgres]]&lt;br /&gt;
*[[PHP-PostgreSQL Functions: programació PHP. Procediments]]&lt;br /&gt;
*[[Teoria PL/pgSQL]]&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Instal·lació Mysql]]&lt;br /&gt;
*[[crear base de dades i usuari per a alumnes]]&lt;br /&gt;
*How To (xuleta) de Mysql per als alumnes: [[Sistemes_Gestors_de_Bases_de_Dades._MySQL._Instal·laci%C3%B3%2C_configuraci%C3%B3_i_%C3%BAs]]&lt;br /&gt;
*[[Optimitzar les taules del Mysql]]&lt;br /&gt;
*[[Mysql cluster]]&lt;br /&gt;
&lt;br /&gt;
=== BD alternatives ===&lt;br /&gt;
*[[SQLite]]&lt;br /&gt;
*[[CouchDB]]&lt;br /&gt;
*[[Curs MongoDB 2014 al PUE]]. http://www.mongodb.org/&lt;br /&gt;
&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració de Samba]]&lt;br /&gt;
=== Servidor DNS (BIND9) ===&lt;br /&gt;
*[[Servidor DNS (BIND9)]]&lt;br /&gt;
=== DynDNS (i noip) (i OVH)===&lt;br /&gt;
*[[DynDNS]]&lt;br /&gt;
*[[Configurar un servidor virutal amb l'Apache]]&lt;br /&gt;
*[[Domini públic amb IP dinàmica]]&lt;br /&gt;
*[[update Abril 2014. noip.com]]&lt;br /&gt;
*[[Migració del servidor joanillo.org a OVH Cloud (núvol)]] (setembre 2020)&lt;br /&gt;
*[[Certificats SSL amb certbot]]&lt;br /&gt;
*[[OVH. VPS Essential jaumebalmes.net]]&lt;br /&gt;
&lt;br /&gt;
=== rsync ===&lt;br /&gt;
*[[rsync]]&lt;br /&gt;
=== Instal·lació Java ===&lt;br /&gt;
*[[Instal·lació Java]]&lt;br /&gt;
*[[Pràctica Hola món]]&lt;br /&gt;
*[[Connexió Java-MySQL bàsica]] (maig 2022)&lt;br /&gt;
&lt;br /&gt;
=== Mediawiki ===&lt;br /&gt;
*[[Instal·lació Mediawiki]]&lt;br /&gt;
*[[xuleta MediaWiki]]&lt;br /&gt;
*[[Protegir automaticament les pàgines - hack mediawiki]]&lt;br /&gt;
*[[Habilitar upload per a imatges i pdf, etc]] (i tar.gz)&lt;br /&gt;
*[[Editar la plantilla d'impressió]]&lt;br /&gt;
*[[Editar la plantilla normal]]&lt;br /&gt;
*[http://meta.wikimedia.org/wiki/MediaWiki_FAQ MediaWiki FAQ]&lt;br /&gt;
*[[Extra Edit Buttons]]&lt;br /&gt;
*[[Còpia de seguretat]]&lt;br /&gt;
*[[Namespaces, plantilles i categories al Mediawiki]]&lt;br /&gt;
*[[Categories definides al meu mediawiki]]&lt;br /&gt;
*[[Hack mediawiki: ficant una entrada des del MySQL]]&lt;br /&gt;
*[[mediawiki sidebar]]&lt;br /&gt;
*[[Extension:SphinxSearch]]: millorar les cerques&lt;br /&gt;
*mediawiki a http://wiki.empresalibre.org, http://wikijoan.dyndns.org, http://localhost/wiki, http://192.168.1.130/wiki: està explicat a [[Virtual_Host:_www.empresalibre.org%2C_wiki.empresalibre.org%2C_blog.empresalibre.org#Configuraci.C3.B3_MediaWiki]]&lt;br /&gt;
*[[cache del mediawiki]]&lt;br /&gt;
*[[Estadístiques d'activitat. Procedures amb MySQL]]&lt;br /&gt;
*[[error: Table './wikidb/searchindex' is marked as crashed]]&lt;br /&gt;
*[[combatre el spam en una mediawiki]]&lt;br /&gt;
*[[Atac wikijoan 29-01-2012]]&lt;br /&gt;
*[[Fórmules matemàtiques amb Latex]]&lt;br /&gt;
*[[(SQL) Recuperar el text d'una pàgina a partir del títol de la pàgina]]&lt;br /&gt;
*[[Crear un nou usuari amb permisos d'edició]]&lt;br /&gt;
*[[Redirecció a l'entrada de Màquines recreatives de la wiki]]&lt;br /&gt;
*[[Migració 1.17 a 1.34 (8 anys)]] (gener 2020, no s'ha fet cap migració en 8 anys)&lt;br /&gt;
*[[Spam octubre 2020]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació Tomcat]]&lt;br /&gt;
&lt;br /&gt;
=== Pentaho ===&lt;br /&gt;
*[[Recursos teoria BI]]&lt;br /&gt;
*[[Pentaho BI Suite Instal·lació]]&lt;br /&gt;
&lt;br /&gt;
=== Mondrian ===&lt;br /&gt;
*[[Instal·lació Mondrian]]&lt;br /&gt;
*[[Instal·lació Mondrian 2010]]&lt;br /&gt;
&lt;br /&gt;
=== PDI-Pentaho Data Integration (aka Kettle) ===&lt;br /&gt;
*[[Introducció a Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Instal·lació Pentaho Data Integration (PDI)]]&lt;br /&gt;
*[[Primers passos amb PDI]]&lt;br /&gt;
*[[DAI-C8-EC:_Eines_ETL_i_Integració_de_Dades._Kettle]]. Pràctica EC PDI-Kettle-Spoon&lt;br /&gt;
&lt;br /&gt;
=== Compilació del Kernel amb Ubuntu Studio ===&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 1r mètode]]&lt;br /&gt;
*[[Compilació del Kernel amb Ubuntu Studio 2n mètode]]&lt;br /&gt;
=== How-To Geek Ubuntu ===&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ the How-To Geek]&lt;br /&gt;
=== Runlevel ===&lt;br /&gt;
*[[Runlevel]]&lt;br /&gt;
*[[Executar un script a l'inici]]&lt;br /&gt;
&lt;br /&gt;
=== Pendrives i USB ===&lt;br /&gt;
*[[Instal·lació des del USB (no ha funcionat)]]&lt;br /&gt;
*[[Muntar i formatar el pendrive]]&lt;br /&gt;
&lt;br /&gt;
=== Servidor d'echos (exercici) ===&lt;br /&gt;
*[[Compilació]]&lt;br /&gt;
*[[Dimonitzem el servidor d'echos]]&lt;br /&gt;
*[[Debianitzem el servidor d'echos]]&lt;br /&gt;
*[[Instal·lació del paquet i comprovació]]&lt;br /&gt;
*[[Registre de dimonis. Logging. Syslog]]&lt;br /&gt;
*[[Instal·lació amb configuració (Debconf)]]&lt;br /&gt;
[[Image:echod_0.1-1_i386.deb |echod_0.1-1_i386.deb ]]&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Installing Oracle Database XE on Debian, Ubuntu, and Kubuntu]]&lt;br /&gt;
*[[Alternatives al SQL*Plus: gqlplus]]&lt;br /&gt;
*[[Clients per a Oracle]]&lt;br /&gt;
*[[PHP-llibreria OCI8]]&lt;br /&gt;
*[[PHP-llibreria OCI8: programació PHP. Procediments]]&lt;br /&gt;
*Manual Instal·lació Oracle 10g+OCI8 sobre Windows, fet per Àlex Adrià:[[Imatge:Installacio_oracle10G_oci8_windows.pdf‎]]&lt;br /&gt;
*Documentació d'Oracle: http://tahiti.oracle.com&lt;br /&gt;
*[[Manual Oracle 9i]]&lt;br /&gt;
*[[Arquitectura Oracle]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo ===&lt;br /&gt;
*[[Assignatura AIAIG]]&lt;br /&gt;
*[[Instal·lació Openbravo]]&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Openbravo 2.50]]&lt;br /&gt;
*[[Instal·lació Openbravo 3]] (abril 2011)&lt;br /&gt;
*[[Entrar al Postgres i fer còpies de seguretat bàsiques]]&lt;br /&gt;
*[[Instal·lar la traducció al castellà]]&lt;br /&gt;
*[[Instal·lar la traducció al català a partir de la del castellà]]&lt;br /&gt;
*[[Primers passos Openbravo]]&lt;br /&gt;
*[[Petita guia d'inici]]&lt;br /&gt;
*[[Càrrega massiva de dades]] (oficial) &lt;br /&gt;
*[[Càrrega massiva de dades II]] (SQL) &lt;br /&gt;
*[[Informes amb Jasper Reports]]&lt;br /&gt;
*[[Documentació]]&lt;br /&gt;
*[[Openbravo Web Services]]&lt;br /&gt;
*[[Llista oficial partners]]&lt;br /&gt;
*[[Canal IRC]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/index.php/Openbravo_ERP_roadmap full de ruta]&lt;br /&gt;
*[[Implantació d'una ERP]]&lt;br /&gt;
*[[Dreceres de teclat Openbravo 2.40]]&lt;br /&gt;
*[http://wiki.openbravo.com/wiki/Business_Intelligence_Integration Openbravo+Pentaho]&lt;br /&gt;
*Millores versió 2.50: http://wiki.openbravo.com/wiki/Openbravo_ERP_2.50_ReleaseNotes&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*Acceptance Testing: http://wiki.openbravo.com/wiki/index.php/Acceptance_Testing&lt;br /&gt;
*[[Problemes resolts Openbravo]]&lt;br /&gt;
*[[Desenvolupar Openbravo amb Eclipse]]&lt;br /&gt;
&lt;br /&gt;
=== Openbravo POS ===&lt;br /&gt;
*[[Instal·lació Openbravo POS]]&lt;br /&gt;
*Sincronització Openbravo amb Openbravo POS: [[Openbravo Web Services]]&lt;br /&gt;
*FAQ: http://wiki.openbravo.com/wiki/OpenbravoPOS_FAQ&lt;br /&gt;
*[[Funcionament del Openbravo POS]]&lt;br /&gt;
*[[Cosetes del Openbravo POS]]&lt;br /&gt;
*Programant Openbrabo POS: &lt;br /&gt;
**http://wiki.openbravo.com/wiki/OpenbravoPOS_Developer_guide&lt;br /&gt;
**http://wiki.openbravo.com/wiki/Openbravo_POS_Scripting_Tutorial&lt;br /&gt;
*[[Instal·lar hardware TPV]]&lt;br /&gt;
*[[Compilar Openbravo POS amb NetBeans i Eclipse]]&lt;br /&gt;
*Manual que proporciona Eines TIC: [[Imatge:7 Guia TPV.pdf]]&lt;br /&gt;
*[[Direct Printing: Epson TM-T70 + Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
=== OpenERP / Tryton ===&lt;br /&gt;
*pdf Jordi Esteve (UPC), Festa Ubuntu 9.04. [[Imatge:Que es openerp.pdf]]&lt;br /&gt;
*[[Instal·lació OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP II]]&lt;br /&gt;
*[[Configuració i documentació Open ERP]]&lt;br /&gt;
*[[OpenERP. Simulant cas real]]&lt;br /&gt;
*[[Models AEAT per a empreses]]&lt;br /&gt;
*[[Monitoritzar canvis en les taules PostgreSQL de OpenERP]]&lt;br /&gt;
*[[Instal·lació OpenERP 7.0 (maig 2014)]]&lt;br /&gt;
*[[instal·lació Tryton]] (maig 2014) (fork comunitari de OpenERP). (TBD) (per ex, nan-tic.com han passat de OpenERP a Tryton)&lt;br /&gt;
&lt;br /&gt;
=== Abanq ===&lt;br /&gt;
*[[Què és Abanq]]&lt;br /&gt;
*[[Documentació Abanq]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu]]&lt;br /&gt;
*[[Instal·lació d'Abanq a Ubuntu a partir de les fonts]]&lt;br /&gt;
*[[Treballant amb Abanq: fer una factura]]&lt;br /&gt;
*[[Treballant amb Abanq II]]&lt;br /&gt;
&lt;br /&gt;
=== Eines TIC ===&lt;br /&gt;
*[[Què és Eines TIC]]&lt;br /&gt;
&lt;br /&gt;
=== Sugar CRM ===&lt;br /&gt;
*[[Què és Sugar CRM?]]&lt;br /&gt;
*[[Instal·lació Sugar CRM]]&lt;br /&gt;
*[[Traducció al castella de Sugar CRM]]&lt;br /&gt;
*[[Documentació Sugar CRM]]&lt;br /&gt;
*[[WebServices, SOAP]]&lt;br /&gt;
*[[Integració Sugar CRM i Openbravo]]&lt;br /&gt;
=== vtiger ===&lt;br /&gt;
*[[Instal·lació vTiger]]&lt;br /&gt;
*[[Pràctica vTiger: gestió d'incidències]]&lt;br /&gt;
&lt;br /&gt;
=== Alfresco ===&lt;br /&gt;
*[[Què és un DMS?]]&lt;br /&gt;
*[[Registre i Documentació Alfresco Enterprise]]&lt;br /&gt;
*[[Compilació des de les fonts]]&lt;br /&gt;
*[[Instal·lació Alfresco a Debian]] inclou Tomcat. Ha funcionat&lt;br /&gt;
*[[Instal·lació Alfresco Ubuntu]] només war. De moment no ha funcionat&lt;br /&gt;
*[[Instal·lació Tomcat+Alfresco+Openbravo]]&lt;br /&gt;
*[[Instal·lació Alfresco Community 3.4 - febrer 2011]]&lt;br /&gt;
*[[Documentació Alfresco]]&lt;br /&gt;
*[[Backup and Recovery d'Alfresco]]&lt;br /&gt;
&lt;br /&gt;
=== Zimbra ===&lt;br /&gt;
*[[Què és Zimbra Collaboration Suite]]&lt;br /&gt;
*Zimbra Tour en Flash a http://www.zimbra.com/demos/zimbra_tour/&lt;br /&gt;
*Zimbra Hosted Free Trial: http://www.zimbra.com/products/hosted_demo.php&lt;br /&gt;
&lt;br /&gt;
===Orange HRM ===&lt;br /&gt;
*[[Documentació Orange]]&lt;br /&gt;
*[[Instal·lació Orange HRM]]&lt;br /&gt;
&lt;br /&gt;
===MantisBT: Gestió d'Incidències ===&lt;br /&gt;
*[[Instal·lació MantisBT]]&lt;br /&gt;
*[[Característiques MantisBT]]&lt;br /&gt;
*[[Instal·lació i configuració Mantisbalmes curs 2011-12 (producció)]]&lt;br /&gt;
&lt;br /&gt;
=== Software Nòmines Open Source ===&lt;br /&gt;
*[[Documentació Nòmines]]&lt;br /&gt;
&lt;br /&gt;
=== BulmaGés ===&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian]]&lt;br /&gt;
*[[Compilació de Bulmagés des del codi font]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 3a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Ubuntu 4a prova]]&lt;br /&gt;
*[[Instal·lació i configuració des dels repositoris de Debian 5a prova]]&lt;br /&gt;
&lt;br /&gt;
=== Wordpress ===&lt;br /&gt;
*[[Instal·lació i configuració d'un blog amb wordpress]]&lt;br /&gt;
*[[Hack WordPress]]&lt;br /&gt;
*[[eCommerce - carret de la compra]]&lt;br /&gt;
*[[Programació carret de la compra PayPal]]&lt;br /&gt;
*[[Configurar plugin de Twitter]]&lt;br /&gt;
*[[Canviar la imatge de la capçalera del Wordpress en funció de la categoria]]&lt;br /&gt;
&lt;br /&gt;
=== Moodle ===&lt;br /&gt;
*[[Instal·lació i configuració del Moodle]]&lt;br /&gt;
*[[Backup i Restore del Moodle]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 10-11]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 11-12]]&lt;br /&gt;
*[[Instal·lació i configuració del Moodle. Institut, curs 12-13]]&lt;br /&gt;
&lt;br /&gt;
=== Groupion ===&lt;br /&gt;
*[[Què és Groupion]]&lt;br /&gt;
*Edicions i Llicència Groupion: http://www.groupion.com/en/getgroupion/editions/&lt;br /&gt;
*[[Documentació Groupion]]&lt;br /&gt;
*[[Groupion: Instal·lació i Administració]]&lt;br /&gt;
&lt;br /&gt;
=== Asterisk ===&lt;br /&gt;
*[[Què és asterisk?]]&lt;br /&gt;
&lt;br /&gt;
===SIG-GIS: Sistemes d'Informació Geogràfica===&lt;br /&gt;
*[[gvSIG: Instal·lació i configuració]]&lt;br /&gt;
&lt;br /&gt;
=== Android ===&lt;br /&gt;
*[[Instal·lació Android SDK]]&lt;br /&gt;
*[[Documentació Android]]&lt;br /&gt;
*[[Utilitzar SQLite des de la Shell en Android]]&lt;br /&gt;
*[[Programant Android SDK]]&lt;br /&gt;
*[[Projecte: dictionary.xml]]&lt;br /&gt;
*[[HTC Dream de Movistar]]&lt;br /&gt;
*[[GMote per a control remot]]&lt;br /&gt;
*[[TBD Android]]&lt;br /&gt;
*[[Android: aplicacions útils]]&lt;br /&gt;
*[[Motorola Moto G]]&lt;br /&gt;
*[[Programació amb MIT App Inventor]]&lt;br /&gt;
&lt;br /&gt;
=== Disc de xarxa NDAS ===&lt;br /&gt;
*[[iomega Home Network Hard Drive 320GB]]&lt;br /&gt;
*[[iomega Home Network Hard Drive 500GB]] a l'institut&lt;br /&gt;
&lt;br /&gt;
===Subversion===&lt;br /&gt;
*[[Funcionament Subversion]]&lt;br /&gt;
&lt;br /&gt;
===FTP Server: vsftp===&lt;br /&gt;
*[[FTP Server: vsftp]]&lt;br /&gt;
*[[Client de FTP: gftp]]&lt;br /&gt;
&lt;br /&gt;
===SSH===&lt;br /&gt;
*[[SSH]]&lt;br /&gt;
*[[Sessió SSH dels alumnes]]&lt;br /&gt;
===Virtual Box===&lt;br /&gt;
*[[Virtual Box en mode comanda: VBoxManage]]&lt;br /&gt;
===Docker, contenidors===&lt;br /&gt;
*[[Primers passos amb docker]]&lt;br /&gt;
*[[docker: instància de mysql server]]&lt;br /&gt;
*[[docker: PostgreSQL]]&lt;br /&gt;
*[[docker a DAM-M02]]&lt;br /&gt;
*[[Cas pràctic: dockeritzar una aplicació. Hauk]]&lt;br /&gt;
*[[Java amb Docker: HelloWorld]]&lt;br /&gt;
*[[docker: intel·ligència artificial - IOC]]&lt;br /&gt;
&lt;br /&gt;
===Remote Shell RSH===&lt;br /&gt;
*[[Remote Shell RSH]]&lt;br /&gt;
===Backup===&lt;br /&gt;
*[[Política de backup]]&lt;br /&gt;
*[[Backup del sistema]]&lt;br /&gt;
*[[backup_UbuntuServer.sh]]&lt;br /&gt;
*[[backup_DELL_Studio.sh]]&lt;br /&gt;
*[[backup_DELL_WXP.bat]]&lt;br /&gt;
*[[backup_LINKAT.sh]]&lt;br /&gt;
*[[backup_BBDD.bat]]&lt;br /&gt;
*[[Còpia de UbuntuServer a DVD]]&lt;br /&gt;
*[[Backup del servidor - oct 2011]]&lt;br /&gt;
*[[Backup del portàtil de producció al servidor]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de la línia de comandes===&lt;br /&gt;
*[[Enviar mail des de la línia de comandes]]&lt;br /&gt;
&lt;br /&gt;
===Enviar mail des de PHP===&lt;br /&gt;
*[[Enviar mail des de PHP: phpMailer]]&lt;br /&gt;
&lt;br /&gt;
===Postfix===&lt;br /&gt;
*Configuració bàsica del Postfix: http://www.postfix.org/BASIC_CONFIGURATION_README.html&lt;br /&gt;
*[[Configuració del postfix]] (inacabat)&lt;br /&gt;
*[[Configuració del postfix II]] (inacabat)&lt;br /&gt;
&lt;br /&gt;
===Classificació fotos===&lt;br /&gt;
*[[ImageMagick]]&lt;br /&gt;
*[[LinPHA]]&lt;br /&gt;
*[[Coppermine]]&lt;br /&gt;
*[[Pixtuff 3.0]]&lt;br /&gt;
*[[Arthropoda]]&lt;br /&gt;
*[[Flickr API]]&lt;br /&gt;
*Recuperar fotos d'una tarja SD o d'un USB: [[http://backinlinux.com/2013/06/11/recuperar-informacion-borrada-en-una-usb-o-disco-con-ubuntu/]]. Ha funcionat correctament.&lt;br /&gt;
&lt;br /&gt;
=== Món Linux ===&lt;br /&gt;
*Exàmen LPIC (wiki Sergi Tur): http://acacha.org/mediawiki/index.php/LPIC1_101&lt;br /&gt;
*revista digital: http://www.gacetatecnologica.com&lt;br /&gt;
*Linux Journal: http://www.linuxjournal.com/&lt;br /&gt;
*Linux Magazine: [http://www.linux-mag.com/ Linux Magazine]&lt;br /&gt;
*webs amigues: http://www.aplicacionesempresariales.com/&lt;br /&gt;
*Empreses que treballen amb Linux: &lt;br /&gt;
:http://libroblanco.com/cms/index.php/Search-dir.html&lt;br /&gt;
:http://www.catpl.org/catpl/empreses&lt;br /&gt;
* Llibre Blanc Smile: Introducció a l'Open Source: [[Imatge:Livre_Blanc_Smile_-_Introduction_à_l'open_source.pdf]]&lt;br /&gt;
* Video promocional Red Hat: Truth Happens: http://www.youtube.com/watch?v=ZtdnZNYN0MM&lt;br /&gt;
* Taula Rodona Linkat vs altres distribucions. Festa Ubuntu 9.04. [[Imatge:TaulaRodonaLinkat.pdf]]&lt;br /&gt;
* Programari lliure a l'escola. Projecte LINKAT. Festa Ubuntu 9.04. [[Imatge:Presentacio Terrassa 09.pdf]]&lt;br /&gt;
* Llibre ''Two bits'' (the cultural significance of free software). Cristopher M. Kelty. [[Imatge:Kelty-TwoBits.pdf]]&lt;br /&gt;
* Connexions (http://cnx.org/). Material educatiu en format lliure.&lt;br /&gt;
* Introducció a Linux (pdf):  [[Fitxer:UF1-Lx 1.pdf]] i [[Fitxer:UF1-Lx 2.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Jocs a Linux===&lt;br /&gt;
*Linux Game Database: http://www.lgdb.org&lt;br /&gt;
*[[Xiangqi-Chinese Chess: GMChess]]&lt;br /&gt;
&lt;br /&gt;
===webcams===&lt;br /&gt;
*[[webcams a Linux]]&lt;br /&gt;
*[[motion tracking - fiducial markers]]&lt;br /&gt;
*[[guvcview]]&lt;br /&gt;
&lt;br /&gt;
===Videos de l'escriptori===&lt;br /&gt;
*[[aplicatiu pyvnc2swf]]&lt;br /&gt;
*[[penjar videos al Youtube]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Fer vídeos del Youtube===&lt;br /&gt;
*teleprompter: http://www.cueprompter.com/&lt;br /&gt;
*[[DVD to AVI]] (Document per polir)&lt;br /&gt;
*[[Webcams a Linux]]&lt;br /&gt;
*[[Fotos i videos amb la Canon EOS 550D. Editor de video Openshot]]&lt;br /&gt;
*[[Tècniques de video]]&lt;br /&gt;
*screencast amb recordmydesktop (amb audio): [[Com_construir_un_MAME_Arcade#gravar_video_del_funcionament_jukebox.2FMAME]]&lt;br /&gt;
*screencast (solució!!): [[Screencast_compatible_amb_JACK]]&lt;br /&gt;
&lt;br /&gt;
===Cremar un CD des de la línia de comandes===&lt;br /&gt;
*[[Cremar un CD des de la línia de comandes]]&lt;br /&gt;
===Ubuntu Server===&lt;br /&gt;
*[[Tips Ubuntu Server]]&lt;br /&gt;
*[[Gestor de finestres icewm]]&lt;br /&gt;
*[[OpenLDAP]]&lt;br /&gt;
===Fer un LiveCD===&lt;br /&gt;
*[[Fer un LiveCD 1]] (no ha funcionat)&lt;br /&gt;
*[[Fer un LiveCD 2]] (remastersys)&lt;br /&gt;
*[[Fer un LiveCD 3]] (remastersys de forma manual)&lt;br /&gt;
===Tips de seguretat===&lt;br /&gt;
*[[Obrir el SSH des d'una pàgina web]]&lt;br /&gt;
*[[xifratge simètric i asimètric]]&lt;br /&gt;
&lt;br /&gt;
===Projecte PHP exemplar===&lt;br /&gt;
* [[Projecte PHP exemplar: Introducció i objectius]]&lt;br /&gt;
* [[Debug: log4PHP]]&lt;br /&gt;
* [[cron]]&lt;br /&gt;
* [[localització (suport multiidioma)]]&lt;br /&gt;
&lt;br /&gt;
===ALTARM - Audit Logical Transactions And Recover Mistakes===&lt;br /&gt;
* [[ALTARM: Windows + Postgres + VB + ASP]]&lt;br /&gt;
&lt;br /&gt;
===Prendre notes amb Tomboy===&lt;br /&gt;
*[[Hacking Tomboy]]&lt;br /&gt;
===wiimote. Projectes amb la Wii===&lt;br /&gt;
*[[LLibreria WiiRemoteJ]]&lt;br /&gt;
*[[Utilitzar wiimote com a ratolí]]&lt;br /&gt;
*[[Pissarra digital]]&lt;br /&gt;
*[[Llibreria WiiC]]&lt;br /&gt;
&lt;br /&gt;
===Karaoke===&lt;br /&gt;
*[[Eliminar la part vocal d'una cançó]]&lt;br /&gt;
*[[PyKaraoke]]&lt;br /&gt;
&lt;br /&gt;
===Screenlets===&lt;br /&gt;
*[[Screenlets]]&lt;br /&gt;
&lt;br /&gt;
===Jocs Infantils===&lt;br /&gt;
*[[Jocs Infantils]]&lt;br /&gt;
===Taller===&lt;br /&gt;
*[[Fast and Easy Can Stirling Engine Tutorial]]&lt;br /&gt;
&lt;br /&gt;
===Impressió===&lt;br /&gt;
*[[Instal·lació HP Deskjet F2480]]&lt;br /&gt;
&lt;br /&gt;
===Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals===&lt;br /&gt;
*[[Fer un DVD amb la instal·lació d'Ubuntu i aplicacions i configuració actuals: Remastersys]]&lt;br /&gt;
&lt;br /&gt;
=== Problemes ===&lt;br /&gt;
*[[joan is not in the sudoers file]]&lt;br /&gt;
*[[problema restore mysql]]&lt;br /&gt;
*[[no em connecto al postgres des d'un ordinador de la xarxa local]]&lt;br /&gt;
*[[deshabilitar el touchpad mentre escrius]]&lt;br /&gt;
*[[el cron no executa el script]]&lt;br /&gt;
&lt;br /&gt;
===GIMP, tauleta gràfica Wacom, Animació 2D/3D, gràfics vectorials, retoc fotogràfic===&lt;br /&gt;
*[[GIMP i tauleta gràfica Wacom]]&lt;br /&gt;
*[[Programació GIMP]]&lt;br /&gt;
*[[Plugins GIMP]]&lt;br /&gt;
Amb Synfig Studio també es pot utilitzar la Wacom: [[Synfig_Studio:_Animació_2D#Creating_Shapes]]&lt;br /&gt;
*[[Synfig Studio: Animació 2D]]&lt;br /&gt;
*[[Blender: Animació 2D]] (modelització 3D)&lt;br /&gt;
*Inkscape: gràfics vectorials. Format SVG (Scalable Vector Graphics): http://inkscape.org/&lt;br /&gt;
*[[freeCAD]]&lt;br /&gt;
*[[Retoc fotogràfic tipus plugins d'Instagram]]&lt;br /&gt;
&lt;br /&gt;
===LibreCAD===&lt;br /&gt;
*[[LibreCAD]]. Free Open Source CAD software&lt;br /&gt;
===CNC===&lt;br /&gt;
Aquí concentro tots els enllaços relacionats amb '''CNC''':&lt;br /&gt;
*[[inkscape]] per a CNC. Per generar g-code i utilitzar Linuxcnc: https://www.youtube.com/watch?v=o7Mfi8ZMHWc&lt;br /&gt;
*[[HeeksCAD]]. Necessito HeeksCAD per obtenir el g-code&lt;br /&gt;
*[[LinuxCNC (EMC2)]]. Alternativa per a Linux&lt;br /&gt;
*[[dxf2gcode]]&lt;br /&gt;
*[[dxf2G]] (línia de comandes)&lt;br /&gt;
*[[utilitat grecode]]&lt;br /&gt;
*[[Màquines CNC]]&lt;br /&gt;
*[[Tutorial G-Code]]&lt;br /&gt;
*[[Fer_plaques_PCB_amb_màquina_CNC | fer plaques PCB amb màquina CNC (drilling and milling) ]]&lt;br /&gt;
*[[Construir_una_màquina_CNC | Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina_CNC_3040T | Màquina CNC 3040T]] (compra de bits/broques)&lt;br /&gt;
*[[Utiltizar_la_màquina_CNC | Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Projectes CNC. Documentació i know-how]]&lt;br /&gt;
*[[script CNC stroke]]&lt;br /&gt;
*[[script CNC hollow]]&lt;br /&gt;
*[[Halftone. Script drillpic2]]&lt;br /&gt;
*[[Càlculs CNC. Speeds and Feeds]]&lt;br /&gt;
*[[Màquina de tall làser (Fàbrica del Sol)]]&lt;br /&gt;
&lt;br /&gt;
===Màquina de Tall làser===&lt;br /&gt;
*[[Màquina de Tall làser. Referències]]&lt;br /&gt;
*[[script cncboxparam]] (projecte ''Maria 12 anys'', night light)&lt;br /&gt;
&lt;br /&gt;
===Tallar vinils===&lt;br /&gt;
*[[Silhouette Cameo]] (abril 2018)&lt;br /&gt;
&lt;br /&gt;
===FreeCAD, 3D printing===&lt;br /&gt;
*[[FreeCAD]]&lt;br /&gt;
&lt;br /&gt;
===gnuplot===&lt;br /&gt;
*[[gnuplot]]&lt;br /&gt;
===Octave (equivalent a Matlab)===&lt;br /&gt;
*[[octave]] (A high-level interactive language for numerical computations)&lt;br /&gt;
&lt;br /&gt;
===Documents al núvol===&lt;br /&gt;
*[[Documents al núvol: Dropbox i Ubuntu One]]&lt;br /&gt;
*[[Documents al núvol: Copy (alternativa al Dropbox)]]&lt;br /&gt;
&lt;br /&gt;
===Servidor Pentium IV 3GHz===&lt;br /&gt;
*[[Servidor Pentium IV 3GHz]] (octubre 2011)&lt;br /&gt;
===Portàtil HP Pavilion g series (institut)===&lt;br /&gt;
*[[Portàtil HP Pavilion g series (institut)]]&lt;br /&gt;
&lt;br /&gt;
===Reconeixement de veu===&lt;br /&gt;
*[[CMU Sphinx]]&lt;br /&gt;
&lt;br /&gt;
===aMule===&lt;br /&gt;
*[[aMule remot]]&lt;br /&gt;
===cosetes===&lt;br /&gt;
*Nautilus: que la barra de direccions sigui text. http://www.taringa.net/posts/linux/5429141/Cambia-la-barra-de-direcciones-de-Nautilus-a-texto.html&lt;br /&gt;
*[[Llibres electrònics i l'editor Sublime Text2. Convertir pdf a txt]]&lt;br /&gt;
&lt;br /&gt;
===Veure la BBC amb una connexió VPN===&lt;br /&gt;
*[[Veure la BBC amb una connexió VPN]]&lt;br /&gt;
&lt;br /&gt;
= HowTo Linkat =&lt;br /&gt;
=== Primers passos ===&lt;br /&gt;
*[[Primers passos]]&lt;br /&gt;
=== Materials de formació ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/dvdformacio/materials/td111/ Curs td111 de LINKAT]&lt;br /&gt;
=== Apache ===&lt;br /&gt;
*[[Instal·lació i configuració Apache]]&lt;br /&gt;
*[[Lloc virtual per a un alumne]]&lt;br /&gt;
&lt;br /&gt;
=== Mysql ===&lt;br /&gt;
*[[Automatitzar les còpies de seguretat]]&lt;br /&gt;
*[[Atacar des de la xarxa]]&lt;br /&gt;
&lt;br /&gt;
=== Postgres ===&lt;br /&gt;
*[[Instal·lació i configuració del Postgres]]&lt;br /&gt;
&lt;br /&gt;
*[[Instal·lació PgAdmin]]&lt;br /&gt;
&lt;br /&gt;
=== Java-JDK ===&lt;br /&gt;
*[[Desinstal·lació total del java: JDK, JRE]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK]]&lt;br /&gt;
*[[Instal·lació i configuració del Java-JDK II]]&lt;br /&gt;
&lt;br /&gt;
=== Tomcat ===&lt;br /&gt;
*[[Instal·lació i configuració del Tomcat]]&lt;br /&gt;
=== Apache Ant ===&lt;br /&gt;
*[[Instal·lació i configuració del Apache Ant]]&lt;br /&gt;
=== OpenBravo ===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo]]&lt;br /&gt;
*[[Traducció al castellà. Problemes]]&lt;br /&gt;
=== OpenBravo POS a la LINKAT===&lt;br /&gt;
*[[Instal·lació i configuració del OpenBravo POS a la LINKAT]]&lt;br /&gt;
=== Samba ===&lt;br /&gt;
*[[Instal·lació i configuració del Samba]]&lt;br /&gt;
=== MediaWiki ===&lt;br /&gt;
*[[Instal·lació i configuració d'una mediawiki]]&lt;br /&gt;
=== pendrive al linkat ===&lt;br /&gt;
*[[pendrive al linkat]]&lt;br /&gt;
=== Aplicacions Jaume Balmes ===&lt;br /&gt;
*[[Aplicació assistència]]&lt;br /&gt;
*[[jaumebalmes.net - Joomla]]&lt;br /&gt;
*[[Servidor virtual (Moodle i altres). Manteniment]]&lt;br /&gt;
&lt;br /&gt;
=== Oracle ===&lt;br /&gt;
*[[Instal·lació Oracle a la LINKAT 3]]&lt;br /&gt;
&lt;br /&gt;
= Curs Administració Linux ICE-UPC =&lt;br /&gt;
*[[Presentació]]&lt;br /&gt;
*[[Sessió 1]]&lt;br /&gt;
*[[Sessió 2]]&lt;br /&gt;
*[[Sessió 3. Compilació del kernel]]&lt;br /&gt;
*[[Sessió 4]]&lt;br /&gt;
*[[Sessió 5. Gestió Remota, SSH]]&lt;br /&gt;
*[[Sessió 6]]&lt;br /&gt;
*[[Sessió 7]]&lt;br /&gt;
*[[Sessió 8]]&lt;br /&gt;
*[[Resum configuració xarxa]]&lt;br /&gt;
&lt;br /&gt;
= Curs Programació Linux ICE-UPC =&lt;br /&gt;
*[[Sessió 1 curs programació linux]]&lt;br /&gt;
*[[Sessió 2 curs programació linux]]&lt;br /&gt;
*[[Sessió 3 curs programació linux]]&lt;br /&gt;
*[[Sessió 4 curs programació linux]]&lt;br /&gt;
*[[Sessió 5 curs programació linux]]&lt;br /&gt;
*[[Sessió 6 curs programació linux]]&lt;br /&gt;
*[[Sessió 7 curs programació linux]]&lt;br /&gt;
*[[Sessió 8 curs programació linux]]&lt;br /&gt;
*[[Sessió 9 curs programació linux]]&lt;br /&gt;
*[[Sessió 10 curs programació linux]]&lt;br /&gt;
&lt;br /&gt;
= Projecte Langtrainer =&lt;br /&gt;
*[[Langtrainer: Introducció]]&lt;br /&gt;
*[[Langtrainer: Base de dades]]&lt;br /&gt;
*[[Langtrainer: Open Flash Chart-OFC]]&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Langtrainer: ToDo]]&lt;br /&gt;
*[[Langtrainer: Control de Qualitat, causístiques]]&lt;br /&gt;
*[[Langtrainer: nova instal·lació pas a pas]]&lt;br /&gt;
*[[Speech Recognition]]&lt;br /&gt;
*[[Vocabulari anglès empresarial]]&lt;br /&gt;
*[[Curs: Eines i estratègies metodològiques per a impartir anglès en els cicles formatius d'FP]]&lt;br /&gt;
=TTS i STT (speech recognition, language models, etc)=&lt;br /&gt;
*[[Langtrainer: Text To Speech-TTS]]&lt;br /&gt;
*[[Instal·lació de sphinxbase i pocketsphinx a la RPi (proves)]] (Magic Mirror)&lt;br /&gt;
*[[TTS: Hora Catalana]]&lt;br /&gt;
&lt;br /&gt;
=Programació Web=&lt;br /&gt;
==PHP==&lt;br /&gt;
*[[Open Flash Chart]]&lt;br /&gt;
*[[executar PHP des del cron]]&lt;br /&gt;
*[[PHP i autenticació LDAP]]&lt;br /&gt;
*[[Framework Laravel]] (maig 2020)&lt;br /&gt;
&lt;br /&gt;
==AJAX==&lt;br /&gt;
*[[Història d'un formulari]]&lt;br /&gt;
&lt;br /&gt;
=Programació Java=&lt;br /&gt;
*Programació de videojocs: Space Invaders amb Java:&lt;br /&gt;
**http://balusoft.wordpress.com/2010/09/26/creando-un-space-invaders-con-java/&lt;br /&gt;
**http://dl.dropbox.com/u/9043876/Curso%20de%20Space%20Invaders/JAVA-INVADERS-00.html&lt;br /&gt;
*[[Shared Libraries amb Java]]&lt;br /&gt;
*[[Programació de sockets amb Java]]&lt;br /&gt;
&lt;br /&gt;
=Programació en C/C++=&lt;br /&gt;
*[[Llibreria EasyBMP]]&lt;br /&gt;
*[[Programació OpenGL]]&lt;br /&gt;
*[[OpenGL]] (i SDL)&lt;br /&gt;
*[[SDL sense servidor X. Raspberry Pi]]&lt;br /&gt;
*[[Tutorial de C++. El diario de Peter Class]] TBD (i altres tutorials)&lt;br /&gt;
*[[Programación en C sobre Linux]] TBD&lt;br /&gt;
*[[Llibreria libpg: accedir a PostgreSQL]]&lt;br /&gt;
*[[wiiuse - The Wiimote C Library]]&lt;br /&gt;
*[[Eclipse CDT]] (IDE per programar en C++ basat en Eclipse&lt;br /&gt;
*[[Anjuta]] IDE C/C++. Mirar també el IDE '''MonoDevelop'''&lt;br /&gt;
*[[llibreries gràfiques GTK]] (per fer finestres..., aplicacions d'escriptori)&lt;br /&gt;
*[[Videojocs amb Allegro]]&lt;br /&gt;
*[[diagrames de flux UML: dia]]&lt;br /&gt;
*[[Writing device drivers in Linux: A brief tutorial]]&lt;br /&gt;
*[[L'API de C de MySQL]]&lt;br /&gt;
*[[Estructures de dades amb C++]]&lt;br /&gt;
*[[parsejar fitxers XML]]&lt;br /&gt;
*[[Videojocs amb C++ i SDL]]&lt;br /&gt;
*[[STK Synthesis ToolKit in C++]]&lt;br /&gt;
*[[Coses útils C++]]&lt;br /&gt;
*[[Xlib programming]] Programació del servidor X&lt;br /&gt;
*[[Fast Fourier Transform: FFTW]]&lt;br /&gt;
*[[Fils/threads amb C++]]&lt;br /&gt;
*[[passar paràmetres per referència amb C]] (amb C++ és una mica diferent)&lt;br /&gt;
*[[Accedir a dispositius USB: llibreria libusb]]&lt;br /&gt;
*[[libxl: llegir i escriure fitxers Excel]]&lt;br /&gt;
*[[Expressions regulars amb C]]&lt;br /&gt;
*[[Programació ncurses]] (colors a la consola i controlar la posició del que escric a la consola)&lt;br /&gt;
*[[Programació dels microcontroladors AVR: avr-gcc]]&lt;br /&gt;
*[[Classe Cotxe, amb C a pèl i amb C++]]&lt;br /&gt;
*[[ID3 Tag Library]] (llegir els tags que hi ha en un fitxer mp3)&lt;br /&gt;
*[[Parser de JSON amb C i C++]]&lt;br /&gt;
*[[Aplicació de consola per capturar events del teclat amb C++ (non-blocking)]]&lt;br /&gt;
*[[POO en C++. Exemple Author-Book. Un objecte té com a data membre un altre objecte]]&lt;br /&gt;
*[[OpenCV a la RPi]] (amb webcams USB i amb la RasPiCam)&lt;br /&gt;
*[[OpenCV a Ubuntu 16.04]]&lt;br /&gt;
*[[OpenCV a Ubuntu 18.04]] (gener 2020)&lt;br /&gt;
*[[OpenCV: aplicatiu recta perfecte, cercle perfecte]] (gener 2020)&lt;br /&gt;
*[[Mètodes o esquemes algorítmics]]&lt;br /&gt;
*[[SDL mínim. Diferents tècniques]]&lt;br /&gt;
*[[Llibreria raylib (videojocs) a la Raspberry Pi]]&lt;br /&gt;
*[[Curs edX: Animation and CGI Motion (ColumbiaX: CSMM.104x)]] (Llibreria Eigen d'Àlgebra Lineal)&lt;br /&gt;
&lt;br /&gt;
=Programació Python=&lt;br /&gt;
*[[Pygame. Programació videojocs]]&lt;br /&gt;
*[[Mètodes numèrics. numpy, scipy, sympy]]&lt;br /&gt;
*[[Python Virtual Environments]]&lt;br /&gt;
*[[python3-tk: GUI amb tinker]]&lt;br /&gt;
*[[Bot de Twitter amb Python i Tweepy]] (setembre 2021)&lt;br /&gt;
&lt;br /&gt;
=Machine Learning, Deep Learning, AI=&lt;br /&gt;
*[[TensorFlow. Python]] (Deep Learning, DL)&lt;br /&gt;
*[[RPi i TensorFlow. Object detection and classification]]&lt;br /&gt;
*[[RPi. Real-time object tracking with TensorFlow]]&lt;br /&gt;
&lt;br /&gt;
=Programació videojocs amb Unity3D=&lt;br /&gt;
*[[Programació videojocs amb Unity3D]]&lt;br /&gt;
=Github=&lt;br /&gt;
*[[Github pràctic: control de versions]]&lt;br /&gt;
*[[Github pages]]&lt;br /&gt;
&lt;br /&gt;
=Node.js=&lt;br /&gt;
*[[Introducció a Node.js]]&lt;br /&gt;
*[[Node.js: Mòduls d'àudio]]&lt;br /&gt;
*[[Node.js: socket.io]]&lt;br /&gt;
&lt;br /&gt;
=Frameworks i llibreries de Javascript=&lt;br /&gt;
*[[React: A JavaScript library for building user interfaces]] (març 2020)&lt;br /&gt;
*[[ReactJS. Curs EdX. Introduction to ReactJS. Microsoft: DEV281x]]&lt;br /&gt;
*[[React Native]] (programació per a Android) (abril 2020)&lt;br /&gt;
*[[Desplegar un projecte web amb Express i Heroku]]&lt;br /&gt;
*[[Aplicació Reactjs a través del servidor web Express]]&lt;br /&gt;
*[[React CRUD tutorial]]&lt;br /&gt;
*[[App mòbil amb React Native: arbres singulars de Barcelona]] (abril-maig 2020, 2022)&lt;br /&gt;
*[[App mòbil amb React Native: Android Studio, mòbil amb USB, emulador]] (ReactNative sense Expo)&lt;br /&gt;
*[[React Native i bluetooth]] (ReactNative sense Expo)&lt;br /&gt;
*[[Llibreria three.js]] (webgl)&lt;br /&gt;
*[[Rest-API-Express-MongoDB]]&lt;br /&gt;
&lt;br /&gt;
=Google Maps=&lt;br /&gt;
*[[Google Maps JavaScript API v3]]&lt;br /&gt;
&lt;br /&gt;
=OpenStreetMap=&lt;br /&gt;
*[[OpenStreetMap - OSM]] (octubre 2019)&lt;br /&gt;
*[[Arbres Monumentals de Catalunya (programació OSM)]] (octubre 2019)&lt;br /&gt;
*[[Ancoratges de bicicleta a Barcelona]] (OSM) (oct 2019)&lt;br /&gt;
*[[opendata-barcelona]] (OSM)&lt;br /&gt;
*[[Traveling Salesman problem i arbres singulars de Barcelona]]&lt;br /&gt;
*[[Importació dels dòlmens de Catalunya]]&lt;br /&gt;
*[[Tiles Server. Renderització]]&lt;br /&gt;
*[[Esglésies romàniques de Catalunya]]&lt;br /&gt;
*[[Fronteres i límits administratius. GeoJSON. Mapes coroplètics]]&lt;br /&gt;
*[[Mapes medievals, mapes ficticis, mapes de fantasia, jocs basats en OSM]]&lt;br /&gt;
*[[Fusionar GeoJSON]]&lt;br /&gt;
*[[Openlayers: ol package. Exemple Casa de Papel]] (Casa de Papel, rutes BTT Cap de Creus)&lt;br /&gt;
*[[Openlayers amb ReactJS]]&lt;br /&gt;
*[[Exemples Openlayers (ol package)]]&lt;br /&gt;
*[[Projecte ProgessiveMaps]] (TBD)&lt;br /&gt;
*[[Reactnative, geolocation]] (programació Android)&lt;br /&gt;
*[[Mapes del ICGC]] (Institut Cartogràfic)&lt;br /&gt;
*[[Mapes de Mapbox]]&lt;br /&gt;
*[[tag route=railway a OSM. Línies de Ferrocarril catalanes]]&lt;br /&gt;
*[[Cales de Menorca]] i altres exemples (tossa, tossal)&lt;br /&gt;
*[[30DayMapChallenge]]&lt;br /&gt;
*Elevation API per generar mapes en relleu: https://elevationapi.com/&lt;br /&gt;
*[[Llibreria procedural-gl]] (mapes 3D tipus Google Earth i Relieve)&lt;br /&gt;
*[[Curs GDS (Dani Arribas)]]&lt;br /&gt;
*[[Catalunya Màgica]]&lt;br /&gt;
*[[Topònims Quintana]]&lt;br /&gt;
*[[Rutes GPS Joanillo]]&lt;br /&gt;
*[[Rutes BTT Joanillo]] (visió global)&lt;br /&gt;
*[[Municipis de Catalunya]]&lt;br /&gt;
*[[La Palma Volcano Resort]]&lt;br /&gt;
*[[CatGeoQuest]] (TBD)&lt;br /&gt;
*[[Montseny]] (TBD)&lt;br /&gt;
*[[Tracking BTT]] (TBD, eliminar)&lt;br /&gt;
*[[POLS: Pumpkin Outdoors Location Sharing]]&lt;br /&gt;
&lt;br /&gt;
=Web Services, APIs=&lt;br /&gt;
*[[API de openweathermap.org, thingful.net (Internet of Things)]]&lt;br /&gt;
*[[API de Strava]] (març 2021)&lt;br /&gt;
&lt;br /&gt;
=Web Data Extraction=&lt;br /&gt;
*[[Web Data Extraction]]&lt;br /&gt;
*[[Firefox add-on programming]] (Executar un bash script des del Firefox)&lt;br /&gt;
*jmining&lt;br /&gt;
=AWS: Amazon Web Services. Cloud=&lt;br /&gt;
*[[AWS: Amazon Web Services. Cloud]]&lt;br /&gt;
&lt;br /&gt;
=Informàtica musical=&lt;br /&gt;
[[Imatge:Ustudioware.jpg|thumbnail]]&lt;br /&gt;
*[[Fil de la història]]&lt;br /&gt;
*[[Windows: feines fetes]]. Midishare, JMusic, Invaders,...&lt;br /&gt;
*[[Ubuntu Studio]]&lt;br /&gt;
*[[ALSA: Advanced Linux Sound Architecture]]&lt;br /&gt;
*[[JACK: Audio Connection Kit]]&lt;br /&gt;
*[[kernel RT i variants]]&lt;br /&gt;
*[[Midishare]]&lt;br /&gt;
*[[Edirol UA-25 EX]]&lt;br /&gt;
*[[Terratec DMX 6FIRE 24/96]]&lt;br /&gt;
*[[Yamaha WX-5 Wind Controller]]&lt;br /&gt;
*[[Alesis DM5]]&lt;br /&gt;
*[[Drum Kit]]&lt;br /&gt;
*[[Foot Controllers]]&lt;br /&gt;
*[[Sintetitzador Roland JV-2080]]&lt;br /&gt;
*[[Sintetitzador Roland JV-1010]]&lt;br /&gt;
*[[Sintetitzador MeeBlip]]&lt;br /&gt;
*[[M-Audio Axiom 25]]&lt;br /&gt;
*[[M-AUDIO MIDAIR]] Midi Wireless System&lt;br /&gt;
*[[Electrònica MIDI]]&lt;br /&gt;
*[[Projectes d'Informàtica Musical]]&lt;br /&gt;
*[[Enllaços Informàtica Musical]]&lt;br /&gt;
*[[Hardware Audio]]&lt;br /&gt;
*[[Altres distribucions Linux orientades a audio]]&lt;br /&gt;
*[[MIDI Clock Sync (How machines stay in sync)]]&lt;br /&gt;
*Projecte 50 Ways to Play Una Plata d'Enciam: [[Llistats_de_maneres_de_tocar_Una_Plata_d'Enciam]]&lt;br /&gt;
*[[OSC: Open Sound Control]]&lt;br /&gt;
*[[Síntesi d'Audio]]&lt;br /&gt;
*[[fer vídeos per al Youtube II]]&lt;br /&gt;
*[[Gravar les veus. Cercant la qualitat]]&lt;br /&gt;
*[[Fitxers MIDI (SMF). Format]]&lt;br /&gt;
*[[Cercant el so de saxofon]]&lt;br /&gt;
*[[Programació/APIs amb C/C++]]&lt;br /&gt;
*[[Música algorísmica]]&lt;br /&gt;
*[[EWI-USB amb la Raspberry Pi]]&lt;br /&gt;
*[[Mopidy-MPD-mpc]]&lt;br /&gt;
&lt;br /&gt;
=Electrònica=&lt;br /&gt;
[[Fitxer:13317017449743365.png|50px]]&lt;br /&gt;
*[[Aplicació inventari.inventari.joanillo.org]]&lt;br /&gt;
*[[Base de dades electrònica]]: http://wikijoan.dyndns.org/electronica/llistar_recursos.php&lt;br /&gt;
*[[enllaços electrònica]]&lt;br /&gt;
*[[Eagle CadSoft]]&lt;br /&gt;
*[[KiCAD i pcb2gcode]]&lt;br /&gt;
*[[fer plaques PCB]]&lt;br /&gt;
*[[fer plaques PCB amb màquina CNC]] (drilling and milling)&lt;br /&gt;
*[[GEDA]]: GEDA: GPL'd suite and toolkit of Electronic Design Automation tools&lt;br /&gt;
*[[Projectes d'Electrònica]]&lt;br /&gt;
*[[Arduino]]&lt;br /&gt;
*[[Arduino: programació dirigida per events]]&lt;br /&gt;
*[[Música amb Arduino]]&lt;br /&gt;
*[[Arduino i HTC Dream]]&lt;br /&gt;
*[[Paperduino]]&lt;br /&gt;
*[[Robot Asuro]]&lt;br /&gt;
*[[Robot Zowi de BQ]]&lt;br /&gt;
*[[cartrobot: robot de cartró amb materials reciclats]]&lt;br /&gt;
*[[Arduino i driver USB]]&lt;br /&gt;
*[[Raspberry Pi]]&lt;br /&gt;
*[[Raspberry Pi: Internet Ràdio]]&lt;br /&gt;
*[[Raspberry Pi. Sensor de temperatura. Domòtica]]&lt;br /&gt;
*[[Raspberry Pi. Programació dels pins GPIO i exapansió dels pins amb I2C. Amb C i C++]]&lt;br /&gt;
*[[Cacera fotogràfica amb Raspberry Pi]]&lt;br /&gt;
*[[fonts d'alimentació, reflexions]]&lt;br /&gt;
*[[Tècniques soldadura/desoldadura]]&lt;br /&gt;
*[[Oscil.loscopi Hameg 203-7]]&lt;br /&gt;
*[[Generador de funcions Promax GF-232]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[Recreatives, Arcade, RetroPlaneta.com]]&lt;br /&gt;
*[[Sistema d'amplificació autònom]]&lt;br /&gt;
*[[Curs MIT: Circuits and Electronics (6.002x)]]&lt;br /&gt;
*[[Simulador de circuits: ngspice, gschem, xcircuit]]&lt;br /&gt;
*[[Simulador de circuits: LTSpice IV]]&lt;br /&gt;
*[[Beagle Board]]&lt;br /&gt;
*[[Pràctiques d'electrònica]]&lt;br /&gt;
*[[Insectes robot]]&lt;br /&gt;
*[[Dispositius USB amb V-USB i microcontroladors AVR]]&lt;br /&gt;
*[[Pinball/milloncete electromecànic]]&lt;br /&gt;
*[[DC 4.5-30V 0-50A Dual LED Digital Voltimeter Amperimeter]]&lt;br /&gt;
*[[FPGAwars]]&lt;br /&gt;
*[[Programador EEPROM amb Arduino]] (programador paral.lel)&lt;br /&gt;
*[[Home-Built Z-80 Computer]]&lt;br /&gt;
*[[Caixa niu, Pep Gener]]&lt;br /&gt;
*[[Makerbuino]]&lt;br /&gt;
*[[Capacitive touch switch]]&lt;br /&gt;
*[[Audiobook]] (TBD)&lt;br /&gt;
*[[Speedometer d'agulla]]&lt;br /&gt;
*[[Rotary encoder]]&lt;br /&gt;
*[[Rètol lluminós amb temporitzador. Regal Maria]]&lt;br /&gt;
*[[Targetes de regal musicals - greeting cards]] (audio recorder module chip)&lt;br /&gt;
*[[Levitació magnètica. Kit]]&lt;br /&gt;
*[[Hard drive motors (brushless, BLDC) using Arduino]]&lt;br /&gt;
*[[Ràdio enllaç Morse]]&lt;br /&gt;
&lt;br /&gt;
=IoT, Internet of Things=&lt;br /&gt;
*[[IoT, Raspberry Pi, RESTful web services]]&lt;br /&gt;
*[[IoT, cursos i apunts]]&lt;br /&gt;
*[[Pràctica IoT: NodeMCU i sensor BME280. Plataforma Thingspeak]]&lt;br /&gt;
*[[NodeRED]]&lt;br /&gt;
*[[Mosquitto MQTT Broker a la RPi]]&lt;br /&gt;
*[[Minigateway LORA d'un canal]]&lt;br /&gt;
*[[Gateway LORA TTN Cat]]&lt;br /&gt;
*[[Node TTN amb TTGO]]&lt;br /&gt;
*[[Node autònom amb alimentació solar, antena DIY, Arduino Pro Micro i transceiver RFM95]]&lt;br /&gt;
*[[Caseta del Pere]]&lt;br /&gt;
&lt;br /&gt;
=Mecànica i bricolatge=&lt;br /&gt;
*[[Funcionament del volant. Wheel steering system]]&lt;br /&gt;
*[[Ensabatillar el saxofon]]&lt;br /&gt;
*[[Construir una màquina CNC]]&lt;br /&gt;
*[[Màquina CNC 3040T]]&lt;br /&gt;
*[[Utiltizar la màquina CNC]]&lt;br /&gt;
*[[Torn DIY (Lathe)]]&lt;br /&gt;
*[[Juego de machos y terrajas]]&lt;br /&gt;
*[[Solenoides]]&lt;br /&gt;
*PCB Holder: http://makerplane.org/?p=1311&lt;br /&gt;
*[[Proveïdors: metall, fusta, etc]]&lt;br /&gt;
*[[Fabricació de molles]]&lt;br /&gt;
*[[Treballar el vidre]]&lt;br /&gt;
*[[Disseny de coffee tables. Idees]]&lt;br /&gt;
*[[Trucos fusteria]]&lt;br /&gt;
*[[Bernissar i pulir la fusta]]&lt;br /&gt;
*[[Màquines i mecanismes]]. Marble machines, kinetic sculpture, perpetual motion, goldberg machines, mecanismes d'escapament, etc.&lt;br /&gt;
*[[Màquina de núvols de sucre]]&lt;br /&gt;
*[[Barco de ràdio control. RC Boat]]&lt;br /&gt;
*[[Idea Hallmark Happy Tappers]] (TBD)&lt;br /&gt;
*[[Cúpules de Leonardo da Vinci]]&lt;br /&gt;
*[[Mordassa per fer marcs]]&lt;br /&gt;
*PCB Holder (TBD)&lt;br /&gt;
*[[Segellar cantons de conglomerat i MDF]]&lt;br /&gt;
*[[Marble Climbing Machine with cardboard]] (regal pel pere, juny 2018)&lt;br /&gt;
&lt;br /&gt;
=Energia solar=&lt;br /&gt;
*[[Curs de la universitat de Delft: DelET.3034TU Solar Energy]]&lt;br /&gt;
*[[Aspectes pràctics instal·lació solar fotovoltaica]]&lt;br /&gt;
&lt;br /&gt;
=Projectes de video=&lt;br /&gt;
*[[Projectes de video]]&lt;br /&gt;
*[[monòlegs]]&lt;br /&gt;
*[[Pyramid hologram]]&lt;br /&gt;
&lt;br /&gt;
=Altres Projectes=&lt;br /&gt;
*[[Conversa amb robot. Combinació TTS i reconeixement de veu]]&lt;br /&gt;
&lt;br /&gt;
=TAMIE=&lt;br /&gt;
*[[TAMIE: Tecnologies Avançades per al Muntatge d'Instal·lacions i Exposicions]]&lt;br /&gt;
&lt;br /&gt;
=50 Ways to Play Una Plata d'Enciam=&lt;br /&gt;
*50 Ways... al blog: [http://www.joanillo.org/?cat=13 http://www.joanillo.org/?cat=13]&lt;br /&gt;
*[[Introducció al projecte 50 Ways to Play Una Plata d'Enciam]]&lt;br /&gt;
*[[fitxers lilypond Una Plata d'Enciam]]&lt;br /&gt;
*[[llistats de maneres de tocar Una Plata d'Enciam]]&lt;br /&gt;
&lt;br /&gt;
=Convocatoria VIDA de la Fundación Telefónica=&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 12.0]]&lt;br /&gt;
*[[Solicitud inscripción convocatoria VIDA 13.0]]&lt;br /&gt;
&lt;br /&gt;
=5 maneres de calcular g (5_ways_2_g)=&lt;br /&gt;
*[[5_ways_2_g]]&lt;br /&gt;
=Twitter robot=&lt;br /&gt;
*[[Twitter API]]&lt;br /&gt;
*[[Twitter robot]]&lt;br /&gt;
&lt;br /&gt;
=Pràctiques de Física amb arduino=&lt;br /&gt;
*[[Idees Pràctiques de Física amb arduino]]&lt;br /&gt;
&lt;br /&gt;
=Manualitats=&lt;br /&gt;
*[[Cartró pedra, Paper Maché]]&lt;br /&gt;
*[[Transfer a fusta]]&lt;br /&gt;
&lt;br /&gt;
=Magical Dolls=&lt;br /&gt;
*[[Idees Magical Dolls]]&lt;br /&gt;
&lt;br /&gt;
=Obres d'art, exposicions, electronic artwork=&lt;br /&gt;
*[[Obres d'art, exposicions, electronic artwork]]&lt;br /&gt;
&lt;br /&gt;
= ToDo =&lt;br /&gt;
*[[ToDo]]&lt;br /&gt;
&lt;br /&gt;
= Altres =&lt;br /&gt;
*[http://www.howtogeek.com/howto/ubuntu/ How To Geek Ubuntu]&lt;br /&gt;
*[[Aircrack]]&lt;br /&gt;
*[[Configuració router Local]]&lt;br /&gt;
*[[Tutorial Bash]]&lt;br /&gt;
*[[The Computational Beauty of Nature]]&lt;br /&gt;
*[[Notes per a la compra d'un ordinador]]&lt;br /&gt;
*[[Notes per a la compra de hardware a Thomann]]&lt;br /&gt;
*[[ZX Spectrum]]&lt;br /&gt;
*[[LATEX]] (novembre 2018, novembre 2019, maig 2021)&lt;br /&gt;
*[[Portàtil Chuwi Minibook X]], novembre 2024&lt;br /&gt;
&lt;br /&gt;
=Eines per a l'aprenentatge d'idiomes=&lt;br /&gt;
*[[Diccionaris i traductors en consola]]&lt;br /&gt;
*[[Entrenadors de Vocabulari]]&lt;br /&gt;
*[[Entrenador de Vocabulari: LANGUAGE TRAINER (LANGTRAINER)]]&lt;br /&gt;
&lt;br /&gt;
=Artròpodes i Insectes=&lt;br /&gt;
*Artròpodes i Insectes (TBD)&lt;br /&gt;
&lt;br /&gt;
=Màquina AMD Ryzen 7 5800X RTX 5060 Ti=&lt;br /&gt;
*[[Màquina AMD Ryzen 7 5800X RTX 5060 Ti]]&lt;br /&gt;
*[[Ollama: Models locals LLM]]&lt;br /&gt;
&lt;br /&gt;
=Tasques PLN i Tecnologies del Llenguatge=&lt;br /&gt;
* [[Traducció castellà-català]]&lt;br /&gt;
&lt;br /&gt;
=Treball Final de Màster (TFM) Màster Tecnologies del Llenguatge=&lt;br /&gt;
* [[RAG. Flux de treball]]&lt;br /&gt;
&lt;br /&gt;
Anirem analitzant per parts cadascun dels components d'un RAG&lt;br /&gt;
* [[RAG: recol·lecció de documents]]&lt;br /&gt;
* [[RAG: split/chunking]] (TODO)&lt;br /&gt;
* [[RAG: embeddings en català]]&lt;br /&gt;
* [[QDrant. Bases de dades semàntiques]]&lt;br /&gt;
* [[RAG: Retrieval]] (TODO)&lt;br /&gt;
* [[RAG: Context]] (TODO)&lt;br /&gt;
* [[RAG: LLM amb Ollama]] (TODO)&lt;br /&gt;
* [[RAG: flux de treball complet, posar-ho tot junt]] (TODO)&lt;br /&gt;
* [[Document 20, per documentar i esborrar]]&lt;br /&gt;
&lt;br /&gt;
=Joan Quintana Compte=&lt;br /&gt;
*[[Curriculum Vitae Joan Quintana Compte]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299207</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299207"/>
		<updated>2026-10-10T17:18:24Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Ollama, primers models LLM locals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
==Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp==&lt;br /&gt;
La única cosa que necessitem és un punt de muntatge, i així tindrem mapejada en el portàtil una carpeta del servidor, i hi podrem accedir com si fos local&lt;br /&gt;
&lt;br /&gt;
En el portàtil instal·lem sshfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install sshfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el portàtil creem un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I muntem el directori de ''projectes/'' del servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja he de veure aquesta carpeta com si fos local.&lt;br /&gt;
&lt;br /&gt;
I ara amb el Sublime Text del portàtil puc treballar amb els fitxers del servidor.&lt;br /&gt;
&lt;br /&gt;
És a dir:&lt;br /&gt;
* /home/joan/projectes és el directori de treball en el servidor IA&lt;br /&gt;
* /home/joan/servidorIA és el punt de muntatge en el portàtil&lt;br /&gt;
&lt;br /&gt;
Repassem les comandes bàsiques de sshfs i scp, tant si treballem en la xarxa local com en la xarxa remota.&lt;br /&gt;
&lt;br /&gt;
Em puc connectar a un servidor via xarxa local o via xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I també sé fer un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Com faig el scp per enviar fitxers del portàtil al servidor, o del servidor al portàtil?&lt;br /&gt;
&lt;br /&gt;
Del portàtil al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp fitxer.txt joan@192.168.1.184:/home/joan/projectes/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota (fixa't en la -P majúscula, i que va abans de l'origen)&lt;br /&gt;
scp -P 2222 fitxer.txt joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Del servidor al portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp joan@192.168.1.184:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota&lt;br /&gt;
scp -P 2222 joan@79.156.157.3:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carpetes senceres: afegim -r (recursiu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -r -P 2222 ~/meu_projecte joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299206</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299206"/>
		<updated>2026-10-10T17:17:30Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Configuració, primeres tasques. Linux Mint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
==Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp==&lt;br /&gt;
La única cosa que necessitem és un punt de muntatge, i així tindrem mapejada en el portàtil una carpeta del servidor, i hi podrem accedir com si fos local&lt;br /&gt;
&lt;br /&gt;
En el portàtil instal·lem sshfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install sshfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el portàtil creem un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I muntem el directori de ''projectes/'' del servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja he de veure aquesta carpeta com si fos local.&lt;br /&gt;
&lt;br /&gt;
I ara amb el Sublime Text del portàtil puc treballar amb els fitxers del servidor.&lt;br /&gt;
&lt;br /&gt;
És a dir:&lt;br /&gt;
* /home/joan/projectes és el directori de treball en el servidor IA&lt;br /&gt;
* /home/joan/servidorIA és el punt de muntatge en el portàtil&lt;br /&gt;
&lt;br /&gt;
Repassem les comandes bàsiques de sshfs i scp, tant si treballem en la xarxa local com en la xarxa remota.&lt;br /&gt;
&lt;br /&gt;
Em puc connectar a un servidor via xarxa local o via xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I també sé fer un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Com faig el scp per enviar fitxers del portàtil al servidor, o del servidor al portàtil?&lt;br /&gt;
&lt;br /&gt;
Del portàtil al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp fitxer.txt joan@192.168.1.184:/home/joan/projectes/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota (fixa't en la -P majúscula, i que va abans de l'origen)&lt;br /&gt;
scp -P 2222 fitxer.txt joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Del servidor al portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp joan@192.168.1.184:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota&lt;br /&gt;
scp -P 2222 joan@79.156.157.3:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carpetes senceres: afegim -r (recursiu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -r -P 2222 ~/meu_projecte joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299205</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299205"/>
		<updated>2026-10-10T17:17:13Z</updated>

		<summary type="html">&lt;p&gt;Joan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299204</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299204"/>
		<updated>2026-10-10T17:15:12Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Configuració, primeres tasques. Linux Mint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
==Treballar amb Sublime Text en el portàtil contra el servidor. sshfs i scp==&lt;br /&gt;
La única cosa que necessitem és un punt de muntatge, i així tindrem mapejada en el portàtil una carpeta del servidor, i hi podrem accedir com si fos local&lt;br /&gt;
&lt;br /&gt;
En el portàtil instal·lem sshfs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install sshfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En el portàtil creem un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I muntem el directori de ''projectes/'' del servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja he de veure aquesta carpeta com si fos local.&lt;br /&gt;
&lt;br /&gt;
I ara amb el Sublime Text del portàtil puc treballar amb els fitxers del servidor.&lt;br /&gt;
&lt;br /&gt;
És a dir:&lt;br /&gt;
* /home/joan/projectes és el directori de treball en el servidor IA&lt;br /&gt;
* /home/joan/servidorIA és el punt de muntatge en el portàtil&lt;br /&gt;
&lt;br /&gt;
Repassem les comandes bàsiques de sshfs i scp, tant si treballem en la xarxa local com en la xarxa remota.&lt;br /&gt;
&lt;br /&gt;
Em puc connectar a un servidor via xarxa local o via xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I també sé fer un punt de muntatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshfs joan@192.168.1.184:/home/joan/projectes ~/servidorIA&lt;br /&gt;
sshfs joan@79.156.157.3:/home/joan/projectes ~/servidorIA2 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Com faig el scp per enviar fitxers del portàtil al servidor, o del servidor al portàtil?&lt;br /&gt;
&lt;br /&gt;
Del portàtil al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp fitxer.txt joan@192.168.1.184:/home/joan/projectes/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota (fixa't en la -P majúscula, i que va abans de l'origen)&lt;br /&gt;
scp -P 2222 fitxer.txt joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Del servidor al portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Xarxa local&lt;br /&gt;
scp joan@192.168.1.184:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&lt;br /&gt;
# Xarxa remota&lt;br /&gt;
scp -P 2222 joan@79.156.157.3:/home/joan/projectes/fitxer.txt ~/Baixades/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Carpetes senceres: afegim -r (recursiu):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
scp -r -P 2222 ~/meu_projecte joan@79.156.157.3:/home/joan/projectes/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299203</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299203"/>
		<updated>2026-10-10T17:07:53Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
* La placa no té bluetooth integrada.&lt;br /&gt;
* Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
* Per desactivar/activar els LEDs: aguantar el botó de reset 2 o 3 segons. Per tornar a activar-ho, tornar a apretar reset.&lt;br /&gt;
&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299202</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299202"/>
		<updated>2026-10-10T17:06:45Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Instal·lació del CUDA Toolkit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit i Pytorch==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
&lt;br /&gt;
Com que:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
podem utilitzar el repositori ''ubuntu2404''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo dpkg -i cuda-keyring_1.1-1_all.deb&lt;br /&gt;
sudo apt update&lt;br /&gt;
&lt;br /&gt;
sudo apt install cuda-toolkit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
No instal·lem el ''cuda'', sinó el ''cuda-toolkit'', i així evitem que el Toolkit intenti substituir coses del driver que Mint ja gestiona (hem instal·lat cuda des dels repositoris oficials).&lt;br /&gt;
&lt;br /&gt;
'''nvcc''' és el compilador de CUDA de NVIDIA (NVIDIA CUDA Compiler). Serveix per compilar codi C/C++ que conté parts pensades per executar-se a la GPU.&lt;br /&gt;
&lt;br /&gt;
El que fa, a grans trets, és separar el codi en dues parts: el codi “host” (CPU), que passa a un compilador normal com gcc, clang o MSVC, i el codi “device” (GPU), és a dir, les funcions marcades amb __global__ o __device__, que compila ell mateix cap a codi per a la GPU. Després ho enllaça tot en un sol executable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ which nvcc&lt;br /&gt;
/usr/local/cuda-13.4/bin/nvcc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ''.bashrc'' afegim el nvcc&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/usr/local/cuda-13.4/bin:$PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per fer-ho de forma permanent:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'export PATH=/usr/local/cuda/bin:$PATH' &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc (per tal de què tingui efectes immediats)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenim dues coses diferents:&lt;br /&gt;
* nvidia-smi: són els drivers de NVIDIA + GPU&lt;br /&gt;
* nvcc: cuda toolkit&lt;br /&gt;
&lt;br /&gt;
Instal·lem ara les eines de desenvolupament: (són genèriques, i ho fem de forma global, no en un venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install build-essential git cmake pkg-config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PyTorch===&lt;br /&gt;
&lt;br /&gt;
La versió actual de PyTorch requereix python modern. 3.10 o posterior per a la versió estable actual. Jo tinc 3.12, ok.&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important. Ho farem amb venv.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cada projecte python tindrà el seu entorn virtual. Per ex:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir xarxes-neuronals&lt;br /&gt;
cd xarxes-neuronals&lt;br /&gt;
&lt;br /&gt;
python3 -m venv .venv&lt;br /&gt;
source .venv/bin/activate&lt;br /&gt;
nou prompt: (.venv) $&lt;br /&gt;
python -m pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ja podem instal·lar el PyTorch. Anirem a la pàgina oficial de PyTorch per seguir les últimes instruccions.&lt;br /&gt;
&lt;br /&gt;
* https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
&lt;br /&gt;
Com que jo tinc CUDA Version: 13.2, la instrucció serà: (recordem, tot això dins del venv)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
script ''primera_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(&amp;quot;PyTorch:&amp;quot;, torch.__version__)&lt;br /&gt;
print(&amp;quot;CUDA disponible:&amp;quot;, torch.cuda.is_available())&lt;br /&gt;
print(&amp;quot;CUDA de PyTorch:&amp;quot;, torch.version.cuda)&lt;br /&gt;
&lt;br /&gt;
if torch.cuda.is_available():&lt;br /&gt;
    print(&amp;quot;GPU:&amp;quot;, torch.cuda.get_device_name(0))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
I ara ja puc fer servir la targeta gràfica de veritat:&lt;br /&gt;
&lt;br /&gt;
script ''segona_prova.py'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import torch&lt;br /&gt;
&lt;br /&gt;
print(torch.cuda.get_device_name(0))&lt;br /&gt;
&lt;br /&gt;
a = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
b = torch.randn(5000, 5000, device=&amp;quot;cuda&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
c = a @ b&lt;br /&gt;
&lt;br /&gt;
print(c.device)&lt;br /&gt;
print(c.shape)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
cuda:0&lt;br /&gt;
torch.Size([5000, 5000])&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mentre ho executem, en un altre terminal podem veure l'ús de la targeta gràfica: (veiem com la memòria puja)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
watch -n 1 nvidia-smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest punt tenim PyTorch + CUDA funcionant.&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299201</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299201"/>
		<updated>2026-10-10T16:41:14Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Configuració, primeres tasques. Linux Mint */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep UBUNTU_CODENAME /etc/os-release&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&lt;br /&gt;
https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299200</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299200"/>
		<updated>2026-10-10T16:40:42Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Instal·lació drivers NVidia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
Instal·lem el driver NVIDIA oficial a partir dels repositoris:&lt;br /&gt;
&lt;br /&gt;
Menú -&amp;gt; Administració &amp;gt; Gestor de controladors.&lt;br /&gt;
&lt;br /&gt;
Detectarà la RTX 5060Ti, i seleccionem el driver propietari recomanat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Instal·lació del CUDA Toolkit==&lt;br /&gt;
El CUDA Toolkit és per fer desenvolupament amb CUDA.&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&lt;br /&gt;
https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299199</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299199"/>
		<updated>2026-10-10T16:35:35Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Instal·lació drivers NVidia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
* https://chatgpt.com/c/6a96f781-d7b4-83ed-8bfd-7d42cf588d91&lt;br /&gt;
&lt;br /&gt;
$ nvcc --version&lt;br /&gt;
nvcc: NVIDIA (R) Cuda compiler driver&lt;br /&gt;
Copyright (c) 2005-2026 NVIDIA Corporation&lt;br /&gt;
Built on Mon_Aug_03_13:24:11_PDT_2026&lt;br /&gt;
Cuda compilation tools, release 13.4, V13.4.59&lt;br /&gt;
Build cuda_13.4.r13.4/compiler.38657139_0&lt;br /&gt;
&lt;br /&gt;
6. No instal·lis PyTorch globalment&lt;br /&gt;
&lt;br /&gt;
Això és important.&lt;br /&gt;
&lt;br /&gt;
No facis:&lt;br /&gt;
sudo pip install torch&lt;br /&gt;
&lt;br /&gt;
https://pytorch.org/get-started/locally/?utm_source=chatgpt.com&lt;br /&gt;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132&lt;br /&gt;
&lt;br /&gt;
$ python3 primera_prova.py &lt;br /&gt;
PyTorch: 2.14.0+cu132&lt;br /&gt;
CUDA disponible: True&lt;br /&gt;
CUDA de PyTorch: 13.2&lt;br /&gt;
GPU: NVIDIA GeForce RTX 5060 Ti&lt;br /&gt;
&lt;br /&gt;
En aquest punt tens PyTorch + CUDA funcionant de veritat.&lt;br /&gt;
(recordem que ho fem en un venv)&lt;br /&gt;
&lt;br /&gt;
Instal·lem els drivers NVidia a partir de la interfície gràfica del Mint.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299198</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299198"/>
		<updated>2026-10-10T16:23:11Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Configuració, primeres tasques i instal·lació drivers NVidia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques. Linux Mint=&lt;br /&gt;
&lt;br /&gt;
El Linux Mint que tinc és el 22.3 Zena&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/linuxmint/info&lt;br /&gt;
RELEASE=22.3&lt;br /&gt;
CODENAME=zena&lt;br /&gt;
EDITION=&amp;quot;Xfce&amp;quot;&lt;br /&gt;
DESCRIPTION=&amp;quot;Linux Mint 22.3 Zena&amp;quot;&lt;br /&gt;
DESKTOP=Gnome&lt;br /&gt;
TOOLKIT=GTK&lt;br /&gt;
NEW_FEATURES_URL=https://www.linuxmint.com/rel_zena_whatsnew.php&lt;br /&gt;
RELEASE_NOTES_URL=https://www.linuxmint.com/rel_zena.php&lt;br /&gt;
USER_GUIDE_URL=https://www.linuxmint.com/documentation.php&lt;br /&gt;
GRUB_TITLE=Linux Mint 22.3 Xfce&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El linux mint ja vindrà amb una instal·lació de python:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
python3 --version&lt;br /&gt;
Python 3.12.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
És una versió prou recent. Si és prou moderna, no tocar res, i executar els projectes python amb venv&lt;br /&gt;
&lt;br /&gt;
Instal·lo els següents paquets i aplicacions:&lt;br /&gt;
* joe&lt;br /&gt;
* sublime text 4&lt;br /&gt;
* venv&lt;br /&gt;
* docker&lt;br /&gt;
* ssh server (de seguida entraré per SSH, veure més avall)&lt;br /&gt;
&lt;br /&gt;
Com a navegador faig servir el Firefox que ja porta el SO (no instal·lo el Chrome)&lt;br /&gt;
&lt;br /&gt;
=Instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
Instal·lem els drivers NVidia a partir de la interfície gràfica del Mint.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299197</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299197"/>
		<updated>2026-10-10T16:14:57Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Connexió SSH (localment i remotament) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques i instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instal·lem els drivers NVidia a partir de la interfície gràfica del Mint.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==Resum connexió SSH==&lt;br /&gt;
Des del portàtil, en la xarxa local:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Des del portàtil, en una xarxa remota:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des del portàtil ho tinc configurat per tal de què no demani el password (perquè hi confia). Des d'una altra màquina em demanaria password.&lt;br /&gt;
&lt;br /&gt;
S'utilitza el port 2222 perquè no és tan evident com el port 22, i així evitem atacs. Se'n diu port forwarding.&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299196</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299196"/>
		<updated>2026-10-10T16:09:49Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Connexió SSH (localment i remotament) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques i instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instal·lem els drivers NVidia a partir de la interfície gràfica del Mint.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router, entrem el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere de l'aparell (pwd: gewn5gJ8)&lt;br /&gt;
&lt;br /&gt;
Un cop dins del router, el primer que farem és configurar-lo de manera que el servidor tingui una IP fixa, que no vagi canviant segons les normes del DHCP. (m'ha costat una mica de veure com es fa, però ho he trobat).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299195</id>
		<title>Màquina AMD Ryzen 7 5800X RTX 5060 Ti</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=M%C3%A0quina_AMD_Ryzen_7_5800X_RTX_5060_Ti&amp;diff=299195"/>
		<updated>2026-10-10T15:59:58Z</updated>

		<summary type="html">&lt;p&gt;Joan: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Components=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PC Gaming AMD Ryzen 7 5800x&lt;br /&gt;
Targeta gràfica: NVidia RTX 5060 Ti 16GB&lt;br /&gt;
RAM: GDDR7 32 GB&lt;br /&gt;
2 TB SSD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Per entrar a la bios: 'supr' vàries vegades&lt;br /&gt;
&lt;br /&gt;
La placa no té bluetooth integrada.&lt;br /&gt;
&lt;br /&gt;
Instal·lo el Linux Mint, formatant el disc dur i carregant-me la instal·lació del Windows.&lt;br /&gt;
=Configuració, primeres tasques i instal·lació drivers NVidia=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/os-release&lt;br /&gt;
NAME=&amp;quot;Linux Mint&amp;quot;&lt;br /&gt;
VERSION=&amp;quot;22.3 (Zena)&amp;quot;&lt;br /&gt;
ID=linuxmint&lt;br /&gt;
ID_LIKE=&amp;quot;ubuntu debian&amp;quot;&lt;br /&gt;
PRETTY_NAME=&amp;quot;Linux Mint 22.3&amp;quot;&lt;br /&gt;
VERSION_ID=&amp;quot;22.3&amp;quot;&lt;br /&gt;
HOME_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
SUPPORT_URL=&amp;quot;https://forums.linuxmint.com/&amp;quot;&lt;br /&gt;
BUG_REPORT_URL=&amp;quot;http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/&amp;quot;&lt;br /&gt;
PRIVACY_POLICY_URL=&amp;quot;https://www.linuxmint.com/&amp;quot;&lt;br /&gt;
VERSION_CODENAME=zena&lt;br /&gt;
UBUNTU_CODENAME=noble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ lsb_release -a&lt;br /&gt;
No LSB modules are available.&lt;br /&gt;
Distributor ID:	Linuxmint&lt;br /&gt;
Description:	Linux Mint 22.3&lt;br /&gt;
Release:	22.3&lt;br /&gt;
Codename:	zena&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instal·lem els drivers NVidia a partir de la interfície gràfica del Mint.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
$ nvidia-smi&lt;br /&gt;
Tue Sep 15 22:59:17 2026       &lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| NVIDIA-SMI 595.91.07              Driver Version: 595.91.07      CUDA Version: 13.2     |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |&lt;br /&gt;
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |&lt;br /&gt;
|                                         |                        |               MIG M. |&lt;br /&gt;
|=========================================+========================+======================|&lt;br /&gt;
|   0  NVIDIA GeForce RTX 5060 Ti     Off |   00000000:05:00.0  On |                  N/A |&lt;br /&gt;
|  0%   43C    P3             12W /  180W |     792MiB /  16311MiB |      4%      Default |&lt;br /&gt;
|                                         |                        |                  N/A |&lt;br /&gt;
+-----------------------------------------+------------------------+----------------------+&lt;br /&gt;
&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
| Processes:                                                                              |&lt;br /&gt;
|  GPU   GI   CI              PID   Type   Process name                        GPU Memory |&lt;br /&gt;
|        ID   ID                                                               Usage      |&lt;br /&gt;
|=========================================================================================|&lt;br /&gt;
|    0   N/A  N/A            1116      G   /usr/lib/xorg/Xorg                      412MiB |&lt;br /&gt;
|    0   N/A  N/A            1449      G   xfwm4                                     3MiB |&lt;br /&gt;
|    0   N/A  N/A            2159      G   /usr/lib/firefox/firefox                298MiB |&lt;br /&gt;
+-----------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connexió SSH (localment i remotament)=&lt;br /&gt;
&lt;br /&gt;
per configurar el router: 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
el password està darrere del router (pwd: gewn5gJ8)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ hostname -I&lt;br /&gt;
192.168.1.184 172.17.0.1 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Comprovar que escolta pel port 22&lt;br /&gt;
&lt;br /&gt;
Executa:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ss -tlnp | grep :22&lt;br /&gt;
LISTEN 0      4096         0.0.0.0:22         0.0.0.0:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=3),(&amp;quot;systemd&amp;quot;,pid=1,fd=239))&lt;br /&gt;
LISTEN 0      4096            [::]:22            [::]:*    users:((&amp;quot;sshd&amp;quot;,pid=1084,fd=4),(&amp;quot;systemd&amp;quot;,pid=1,fd=240))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Provar SSH des de dins de casa (xarxa local)&lt;br /&gt;
&lt;br /&gt;
Des d'un altre ordinador connectat al teu Wi-Fi/LAN:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh joan@192.168.1.184&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Després farem la configuració del HGU (la marca del router)&lt;br /&gt;
&lt;br /&gt;
Una vegada confirmem això, configurarem dues coses al router:&lt;br /&gt;
&lt;br /&gt;
Reserva DHCP&lt;br /&gt;
&lt;br /&gt;
Per evitar que el servidor passi de 192.168.1.184 a una altra IP.&lt;br /&gt;
&lt;br /&gt;
Port forwarding&lt;br /&gt;
&lt;br /&gt;
Per exemple:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Internet        HGU              Linux Mint&lt;br /&gt;
2222  ───────►  192.168.1.184:22&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Així, des de fora entraràs amb:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh EL_TEU_USUARI@LA_TEVA_IP_PUBLICA -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I després podem afegir clau SSH + desactivar contrasenyes, que és el que et recomano abans de deixar SSH exposat a Internet.&lt;br /&gt;
&lt;br /&gt;
*direcció IP WAN: 10.83.118.15&lt;br /&gt;
*joan-IA	10:ff:e0:d5:34:e4	192.168.1.184&lt;br /&gt;
*servidor DNS1: 80.58.61.254&lt;br /&gt;
*servidor DNS2: 80.58.61.250&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ curl ifconfig.me&lt;br /&gt;
79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquesta és la IP pública del router que es veu des de Internet&lt;br /&gt;
&lt;br /&gt;
Molts operadors a Espanya fan servir CGNAT: la teva connexió comparteix IP pública amb altres clients, i obrir ports al router no serveix de res. Per comprovar-ho, compara la IP WAN que mostra el router amb la que surt a una web com ifconfig.me. Si no coincideixen, tens CGNAT.&lt;br /&gt;
&lt;br /&gt;
En el meu cas, ifconfig.me mostra 79.156.157.3, per tant és una bona notícia, la connexió IP pública és meva, no està compartida.&lt;br /&gt;
&lt;br /&gt;
Per tant, la IP WAN del HGU és realment pública i no estic darrere de CG-NAT.&lt;br /&gt;
&lt;br /&gt;
I una precisió sobre el port 2222: és perfectament raonable utilitzar-lo, però canviar 22 → 2222 no és una protecció de seguretat significativa. Quan ho tinguem funcionant, jo faria el pas important: autenticació SSH amb clau i desactivar l'accés per contrasenya.&lt;br /&gt;
&lt;br /&gt;
amb el portàtil em connecto amb dades mòbils i així no estic a la xarxa local. Ja em puc connectar al servidor com si estigués en una xarxa remota:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i ja entro al servidor. Ara ja puc treballar des de qualsevol lloc, pel port 22&lt;br /&gt;
&lt;br /&gt;
Ara ja puc fer el següent pas: '''autenticació SSH amb clau i desactivar l'accés per contrasenya'''. Però m'interessarà activar/desactivar l'accés per contrasenya sempre que vulgui de manera fàcil.&lt;br /&gt;
&lt;br /&gt;
1. Primer: crear una clau SSH al dispositiu des d'on et connectaràs&lt;br /&gt;
&lt;br /&gt;
Per exemple, si habitualment entraràs des del teu portàtil:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
des del portàtil copiem la clau pública al servidor:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-copy-id -p 2222 joan@79.156.157.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
la clau queda emmagatzemada dins del fitxer: ''.ssh/authorized_keys''&lt;br /&gt;
&lt;br /&gt;
i ara ja puc tornar a entrar i no m'ha de demanar la contrasenya:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh joan@79.156.157.3 -p 2222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
ja tenim l'autenticació per clau funcionant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El que vull és com un interruptor temporal&lt;br /&gt;
* SSH només amb clau       → segur&lt;br /&gt;
* SSH amb clau + contrasenya → temporal&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo sshd -T | grep -E 'passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication'&lt;br /&gt;
[sudo] contrasenya per a joan:         &lt;br /&gt;
pubkeyauthentication yes&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
kbdinteractiveauthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
Busquem:&lt;br /&gt;
&lt;br /&gt;
#PasswordAuthentication yes&lt;br /&gt;
&lt;br /&gt;
i posem:&lt;br /&gt;
&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(amb ''reload'' no cal reiniciar el servei, que faríem amb ''sudo systemctl restart ssh'')&lt;br /&gt;
&lt;br /&gt;
Ara ja puc entrar sempre que vulgui des del portàtil sense que em demani el password, i no puc entrar des de cap altra màquina perquè el password està desactivat: ''passwordauthentication no'' al fitxer ''/etc/ssh/sshd_config''&lt;br /&gt;
&lt;br /&gt;
Per activar temporalment el password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
joe /etc/ssh/sshd_config&lt;br /&gt;
passwordauthentication yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl reload ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ollama, primers models LLM locals=&lt;br /&gt;
==Model QWen 3.5 27B (quantitzat)==&lt;br /&gt;
Installar QWen 3.5 27B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Quantització:&lt;br /&gt;
Q2_K	~10 GB	~11–13 GB	Baixa	🟢 Bé&lt;br /&gt;
Q3_K_M	~12.5 GB	~14–16+ GB	Bona	🟢 Recomanable&lt;br /&gt;
Q4_K_M	~15.5–16 GB	~17–19+ GB	Molt bona	🟡 RAM + VRAM&lt;br /&gt;
Q5/Q6	&amp;gt;18 GB	&amp;gt;20 GB	Millor	🔴 Massa gran&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
jo compararia Q3_K_M vs IQ3_M vs aard-Q3 abans de descarregar-ne cap.&lt;br /&gt;
&lt;br /&gt;
Descarreguem el fitxer Qwen3.5-27B-Q3_K_M.gguf de:&lt;br /&gt;
&lt;br /&gt;
* [[https://huggingface.co/bartowski/Qwen_Qwen3.5-27B-GGUF/blob/main/README.md?utm_source=chatgpt.com]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Qwen3.5-27B-Q3_K_M.gguf 	Q3_K_M 	14.82GB 	false 	Low quality.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
aquest fitxer ocupa uns 15G&lt;br /&gt;
&lt;br /&gt;
fitxer Modelfile:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM ./Qwen3.5-27B-Q3_K_M.gguf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ollama create qwen3.5:27b-q3 -f Modelfile&lt;br /&gt;
ollama list&lt;br /&gt;
ollama run qwen3.5:27b-q3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, setembre 2026&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>