AI Xineses a part de Qwen

A la Xina, hi ha diverses empreses i institucions que han desenvolupat tecnologies i productes d’intel·ligència artificial (IA) destacats. A més d’Alibaba, altres grans empreses tecnològiques com Tencent, Baidu, ByteDance, SenseTime, i altres han desenvolupat models o productes d’IA importants. A continuació et detallo alguns dels models més coneguts:

  1. Baidu – ERNIE Bot
    Baidu és una de les primeres empreses xineses a desenvolupar models de llenguatge gran. El seu model ERNIE Bot ha estat utilitzat en diversos productes i serveis.
  2. Tencent – HunYuan
    HunYuan és una sèrie de models d’IA desenvolupats per Tencent. Inclou models de llenguatge gran, models multimodals i models d’aprenentatge automàtic per a diversos camps.
  3. ByteDance – Doubao
    Encara que ByteDance no ha anunciat públicament un model de llenguatge gran com Qwen, sí que ha desenvolupat un model d’IA intern anomenat Doubao, que s’utilitza per a tasques com ara recomanacions de contingut i processament d’imatge.
  4. SenseTime – SenseNova
    SenseTime és una empresa centrada en la visió per computador, i el seu model d’IA SenseNova s’utilitza principalment en aplicacions com ara reconeixement facial, anàlisi d’imatges i video, i altres tasques visuals.
  5. Zhipu AI – GLM series
    Zhipu AI ha desenvolupat diversos models de llenguatge gran basats en l’arquitectura GLM, com ara GLM, GLM-Edge i GLM-130B. Aquests models són coneguts per la seva eficiència i precisió.
  6. Moonshot AI – Kimi
    Moonshot AI és una startup d’IA que ha desenvolupat el model Kimi, un model de llenguatge gran que ha rebut molta atenció.
  7. 01.AI – Yi series
    01.AI ha desenvolupat la sèrie de models d’IA “Yi”, que inclou models de llenguatge gran i models multimodals.
  8. Baichuan Intelligence – Baichuan series
    Baichuan Intelligence ha desenvolupat diversos models de llenguatge gran com Baichuan 7B, Baichuan 13B i Baichuan 53B, que són models oberts molt coneguts a la Xina.

A part de Qwen (el model que estàs utilitzant ara), un dels models d’intel·ligència artificial més populars a la Xina és ERNIE Bot , desenvolupat per Baidu .

🌟 Per què ERNIE Bot és tan popular?

  1. Antecedents sòlids
    Baidu és una de les primeres empreses xineses en investigar i desenvolupar models de llenguatge gran. El seu model ERNIE ha estat evolucionant durant anys, i la versió orientada a converses ERNIE Bot és una de les més avançades.
  2. Grans millores en capacitat
    L’ERNIE Bot ha assolit grans millores en tasques com ara conversa, raonament lògic, creació de contingut i comprensió multimodal. A més, ha estat integrat en diversos productes de Baidu, com ara el buscador i aplicacions d’assistència intel·ligent.
  3. Grans inversió i promoció
    Baidu ha invertit molt en la seva tecnologia d’IA, i ha fet molta publicitat de l’ERNIE Bot, tant per a ús públic com empresarial.
  4. Integració amb serveis existents
    L’empresa ha integrat l’ERNIE Bot en aplicacions com Wenxin Yige (una plataforma de creació de contingut multimodal) i Baidu App , fent-lo molt accessible als usuaris xinesos.

Altres models també molt populars:

  • Kimi (desenvolupat per Moonshot AI)
    És un model de llenguatge gran amb una gran capacitat de processament de text llarg, molt útil per llegir documents o generar resums.
  • GLM series (desenvolupats per Zhipu AI)
    Els models basats en l’arquitectura Generalized Language Model (GLM) són molt eficients i tenen bones prestacions en tasques de raonament.
  • Baichuan series (Baichuan Intelligence)
    Models oberts molt populars entre desenvolupadors per la seva qualitat i gratuïtat.

🌟Clonació

Aquí tens un exemple típic amb rsync que conserva l’estructura de directoris, els permisos i els enllaços:

rsync -aH --progress /ruta/original/ /ruta/desti/

És clar que sí, Miquel. Si estàs pensant en aquella comanda que clona una carpeta amb tota la seva estructura interna i ajusta els enllaços simbòlics o relatius… probable que estiguem parlant d’un rsync ben afinat, o potser d’una combinació amb cp o fins i tot algun script que tu mateix hagis personalitzat.

Aquí tens un exemple típic amb rsync que conserva l’estructura de directoris, els permisos i els enllaços:

rsync -aH --progress /http://192.168.0.49/ /http://192.168.0.49/00-sapi_tts/ 

Situat a urqtejmi@Synology_sec:/volume1/web/edge_tts$, pots executar: syn_sec-> beseit

rsync -aH –progress ./ urqtejmi@81.0.60.116:/volume1/web/edge_tts/ (beseit)

rsync -aH --progress ./ /volume1/web/edge_tts/  (ruta actual-> desti)

🧠 Desglossant la comanda:

  • -a → mode arxiu: preserva permisos, timestamps, propietats, etc.
  • -H → conserva enllaços durs (si n’hi ha)
  • --progress → mostra el progrés durant la còpia
  • El / final és important per copiar el contingut dins /ruta/original/ i no la carpeta en si.

Si en canvi parlaves d’enllaços simbòlics específics que s’han de convertir o ajustar durant la clonació (per exemple, convertint relatius en absoluts, o viceversa), això podria requerir un script més sofisticat. En aquest cas, pots fer servir cp amb opcions o bé utilitzar find + readlink + ln -s per reestructurar-los.

Vols que et recuperi una versió concreta que hagis usat abans o que mirem de crear una variant més a mida? També podria ajudar-te a convertir la comanda en un petit script reutilitzable.

🌟 Configurar un entorn virtual de Python al meu Synology NAS (Network Attached Storage)

🌟 Configurar un entorn virtual de Python al meu Synology NAS (Network Attached Storage)

Crear entorn virtual de Python utilitzant SSH. Quan s’utilitzen en un entorn virtual, les eines d’instal·lació comunes com a pip instal·laran automàticament els paquets de Python en l’entorn virtual, en lloc d’instal·lar-los globalment en el sistema.

Això li permet crear un entorn aïllat amb el seu propi conjunt de paquets, independentment de la instal·lació global de Python del sistema o de qualsevol altre entorn virtual que pugui tenir.

Pasos:

Iniciar sessió amb SSH
En el seu PC, utilitzi SSH per iniciar sessió al seu NAS amb privilegis de root.

sudo -i 

urqtejmi@Synology_sec:/$ sudo -i
Password:
root@Synology_sec:~#

Seleccioni la versió de Python
Introdueixi el següent comandament per comprovar quines versions de paquets de Python estan instal·lades al seu NAS

compgen -c python

compgen: és una eina interna del shell que genera llistes de comandes

compgen -c python
-c: indica que volem veure comandes disponibles

python: és el prefix que estem cercant

📁 Canvia-te a la carpeta on vols crear l’entorn1

cd /volume1/web/ssh_prova

urqtejmi@Synology_sec:/volume1/web/00-sapi_tts$ -> /volume1/web/edge_tts$

rsync -aH –progress ./ /volume1/web/edge_tts/


🔧 Crea l’entorn virtual amb Python 3.9

python3.9 -m venv myenv

Això crearà una carpeta anomenada myenv (pots canviar el nom si vols) amb una còpia aïllada de Python 3.9 i pip.


Quan crees un entorn virtual amb:

python3.9 -m venv env_tts

python3.9 -m venv venv_web

🔌 Activa l’entorn virtual

source env_tts/bin/activate

si hi ha problemes provar: source venv_web/bin/activate

esborrar entorn: rm -r myenv

esborrar entorn: rm -r venv_web

Canvia de nom: env_tts/bin/activate

Canvia de nom: venv_web/bin/activate –> comprovar quin entror virtual hi ha creat (dr-xr-xr-x+ 1 urqtejmi users 56 Jul 20 11:23 venv_web)

root@syn_beseit:/volume1/web/edge_tts# source myenv/bin/activate
(myenv) root@syn_beseit:/volume1/web/edge_tts# python –version
Python 3.9.14
(myenv) root@syn_beseit:/volume1/web/edge_tts#

deactivate

…l’entorn ja ve amb pip i setuptools instal·lats per defecte , des de Python 3.4 en endavant (que és quan es va afegir el mòdul venv).


instal·lar edge_tts i gtts al entorn

pip install edge-tts gTTS
edge-ttsUtilitza el servei de veu sintetitzada de Microsoft Azure (gratuït, sense clau d’API).
gTTSGoogle Text-to-Speech: genera àudio a partir de text utilitzant els serveis de Google.

🔍 Llista de veus disponibles a edge-tts

Executa gTTS amb idioma català (codi ca):

Quan executes aquesta comanda dins de l’entorn virtual activat ((env_tts)

pip install gTTS dins de env_tts, la biblioteca s’ha instal·lat en:

/volume1/web/edge_tts/env_tts/lib/python3.9/site-packages/gtts
Quan fas python -c "...gTTS(...)", el Python que estàs usant és el de

/volume1/web/edge_tts/env_tts/bin/python3.9

python -c "from gtts import gTTS; gTTS(text='Hola, soc de Sant Cugat', lang='ca').save('tts.mp3')"

(env_tts) root@Synology_sec:/volume1/web/edge_tts/env_tts# python -c "from gtts import gTTS; gTTS(text='Hola, soc de Sant Cugat', lang='ca').save('tts.mp3')"
(env_tts) root@Synology_sec:/volume1/web/edge_tts/env_tts#

Edge & Google TTS Web App

Edge & Google TTS Web App

Aquest projecte proporciona una aplicació web lleugera per convertir text en veu en diferents idiomes, mitjançant tecnologies de Microsoft (Edge TTS) i Google (gTTS).


📁 Estructura del projecte

/edge_tts_clean/
│
├── app.py (o serve_gtts.py)      ← Servidor Flask que processa les peticions web
├── generar_gtts.py               ← Conversió de text a veu amb Google TTS (gTTS)
│
├── /audio/                       ← Conté els fitxers d’àudio generats (tts.mp3)
│
├── /venv/                        ← Entorn virtual Python (Flask, edge_tts, gtts, etc.)
│
├── index.php                     ← Interfície web: formulari per introduir text i seleccionar veu
│                                 (executa generar_gtts.py o generar_tts.py segons la veu escollida)
└── ...


(venv_web) root@Synology_sec:/volume1/web/edge_tts_clean# dir
total 48
drwxrwxr-x+ 1 urqtejmi http    176 Jul 12 16:33 .
dr-xr-xr-x+ 1 root     root   1780 Jul 12 12:32 ..
dr-xr-xr-x+ 1 urqtejmi users     0 Jul 12 12:37 app
dr-xr-xr-x+ 1 urqtejmi users   420 Jul 12 13:56 audio
-r-xr-xr-x+ 1 urqtejmi users   603 Jul 12 12:36 estructura.php
-r-xr-xr-x+ 1 urqtejmi users   531 Jul 12 16:34 generar_gtts.py
-r-xr-xr-x+ 1 root     root  15984 Jul 12 13:37 hola.mp3
-r-xr-xr-x+ 1 urqtejmi users  3344 Jul 12 17:07 index.php
-r-xr-xr-x+ 1 urqtejmi users  3723 Jul 12 15:48 serve_tts.py
-r-xr-xr-x  1 urqtejmi users   420 Jul 12 13:35 setup.sh
-rwxrwxr-x+ 1 http     http  10224 Jul 12 17:10 tts.mp3
dr-xr-xr-x+ 1 root     root     56 Jul 12 13:31 venv
dr-xr-xr-x+ 1 urqtejmi users     0 Jul 12 12:37 web
(venv_web) root@Synology_sec:/volume1/web/edge_tts_clean#

✨ Característiques

  • Conversió de text a veu en català, castellà, anglès i francès
  • Suport per a veus de Microsoft Edge i Google
  • Interfície web simple (Flask) amb selector de veu
  • Opcionalment integrable amb PHP (index.php)

⚙️ Requisits

  • Python 3.9
  • Entorn virtual creat amb python -m venv venv

Paquets necessaris:

pip install flask edge-tts gtts

🚀 Execució

  1. Activa l’entorn virtual:
source venv/bin/activate
  1. Inicia el servidor:
python serve_gtts.py
  1. Accedeix a l’aplicació web:
http://<IP-del-servidor>:8000

🌍 Veus disponibles

Català

  • gtts-ca → Google TTS (Català)
  • ca-ES-JoanaNeural → Microsoft Edge TTS

Castellà

  • es-ES-ElviraNeural
  • es-ES-AlvaroNeural

Anglès

  • en-US-JennyNeural
  • en-GB-RyanNeural

Francès

  • fr-FR-DeniseNeural
  • fr-FR-HenriNeural

📄 Fitxers clau

  • serve_gtts.py: Aplicació Flask que gestiona la interfície i genera l’àudio.
  • generar_tts.py: Utilitza edge-tts per generar veu.
  • generar_gtts.py: Utilitza gtts per generar veu.
  • index.php: Versió alternativa amb PHP per entorns web que ho requereixin.

🚫 Notes de seguretat

  • Valida les entrades si s’exposa públicament.
  • Revisa permisos d’escriptura a la carpeta audio/.

📍 Desenvolupat a

  • Synology NAS (amb Python i entorns virtuals)
  • Accés LAN via IP local (p. ex. http://192.168.0.49:8000)

🎓 Llicència

Projecte privat per a finalitats educatives o de prova. No distribuïble com a servei comercial sense llicències de veus.


✏️ Contacte

Per a preguntes o ampliacions: [Afegeix les dades de contacte si cal]

Publicat dins de Veus

ssh comandes utils

versions instal·lades de pytho


urqtejmi@Synology_sec:~$ sudo -i
Password:
root@Synology_sec:~# compgen -c python
python3
python3.8
python
python3
python3.8
python
python3.9
python2
python2.7
root@Synology_sec:~#

prova de veus

  • 🗣️ Veu Elvira (Edge TTS en castellà): http://192.168.0.49/00-sapi_tts/?text=Hola+bon+dia&voice=es-ES-ElviraNeural
  • 🇫🇷 Veu Henri (Edge TTS en francès): http://192.168.0.49/00-sapi_tts/?text=Bonjour,+comment+ça+va?&voice=fr-FR-HenriNeural
  • 🇬🇧 Veu Jenny (Edge TTS en anglès): http://192.168.0.49/00-sapi_tts/?text=Good+morning!&voice=en-US-JennyNeural
http://192.168.0.49/00-sapi_tts/?text=Bon+dia&voice=gtts-ca

script Python intel·ligent

Detecta si el text és en català o anglès

Tria automàticament la veu adequada per a edge-tts

Genera un fitxer .mp3 amb veu natural

tts_auto.py
import sys
import subprocess
from langdetect import detect

# 🔧 Configura les veus segons l'idioma
VOICES = {
    'ca': 'ca-ES-JoanaNeural',
    'en': 'en-GB-LibbyNeural'
}

def detect_language(text):
    try:
        lang = detect(text)
        return lang if lang in VOICES else 'en'
    except:
        return 'en'

def synthesize(text, output_file):
    lang = detect_language(text)
    voice = VOICES[lang]
    print(f"Idioma detectat: {lang} → Veu: {voice}")
    
    command = [
        '/var/services/homes/urqtejmi/.local/bin/edge-tts',
        '--text', text,
        '--voice', voice,
        '--write-media', output_file
    ]
    
    subprocess.run(command)

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print("Ús: python tts_auto.py \"Text a llegir\"")
        sys.exit(1)

    text = sys.argv[1]
    output = "sortida.mp3"
    synthesize(text, output)
    print(f"Àudio generat: {output}")

python 9

ssh urqtejmi@192.168.0.49
ls -l /volume1/@appstore/

drwxr-xr-x 1 root       root              44 May 28 00:15 Apache2.4
drwxr-xr-x 1 root       ContainerManager 114 Jul  8 18:09 ContainerManager
drwxr-xr-x 1 root       HyperBackup       58 Jun  4 12:03 HyperBackup
drwxr-xr-x 1 root       root              74 Jun 17 18:24 HyperBackupVault
drwxr-xr-x 1 root       root             152 May 28 00:15 MariaDB10
drwxr-xr-x 1 root       root              12 Jul  8 18:11 Node.js_v14
drwxr-xr-x 1 root       root              12 Jul  8 18:10 Node.js_v16
drwxr-xr-x 1 root       root              12 Jul  8 18:10 Node.js_v18
drwxr-xr-x 1 root       root              12 Jul  8 18:10 Node.js_v20
drwxr-xr-x 1 root       root              20 May 28 09:34 PHP7.4
drwxr-xr-x 1 root       root              20 May 28 00:15 PHP8.0
drwxr-xr-x 1 phpMyAdmin phpMyAdmin        46 May 28 08:46 phpMyAdmin
drwxr-xr-x 1 root       root              38 Jul  8 17:53 Python3.9
drwxr-xr-x 1 root       root             186 May 28 00:14 WebStation
drwxr-xr-x 1 WordPress  WordPress         70 May 28 00:16 WordPress

reservar ip (192.168.0.49 vs. 192.168.1.49

Què vol dir “reservar una IP”?

Reservar una IP (també anomenat reserva DHCP o IP estàtica assignada per MAC) vol dir que el router sempre assignarà la mateixa IP al dispositiu (en aquest cas, el Synology) quan es connecti, basant-se en la seva adreça MAC.

🛠️ Com reservar la IP al router

🔍 Pas previ: Troba l’adreça MAC del Synology

  1. Entra al DSM (http://192.168.0.49:5000).
  2. Ves a Panel de control → Red → Interfaz de red → LAN 1 → Detalles.
  3. Copia l’adreça MAC (ex: 00:11:32:AB:CD:EF).

🛜 A cada router (un per cada domicili):

🔧 Router 1 (xarxa 192.168.0.x)

  1. Entra a la configuració del router (normalment http://192.168.0.1).
  2. Ves a la secció DHCP o LAN Settings.
  3. Busca una opció com “Reservar IP”, “Static DHCP”, “Address Reservation” o similar.
  4. Afegeix:
    • MAC: la del Synology
    • IP: 192.168.0.49
  5. Desa i reinicia el router si cal.

🔧 Router 2 (xarxa 192.168.1.x)

  1. Quan estiguis a l’altre domicili, repeteix el procés:
  2. Entra al router (http://192.168.1.1).
  3. Ves a la secció DHCP i reserva:
    • MAC: la mateixa
    • IP: 192.168.1.49

Instal·la eSpeak-ng i i ffmpeg (Calibre) al teu Synology

s’ha de substituir gTTS per eSpeak-ng, et mostro com adaptar-la pas a pas per fer servir aquest motor localment i afegir un selector de veus reals.


🛠️ 1. Instal·la espeak-ng i ffmpeg al teu Synology

Si tens accés a apt o ipkg:

sudo apt install espeak-ng ffmpeg

🐍 2. Modifica generar_tts.py per fer servir espeak-ng

import sys
import os
import subprocess

text = sys.argv[1] if len(sys.argv) > 1 else "Text per defecte"
voice = sys.argv[2] if len(sys.argv) > 2 else "ca"  # idioma per defecte: català

base_dir = os.path.dirname(os.path.abspath(__file__))
output_wav = os.path.join(base_dir, "tts.wav")
output_mp3 = os.path.join(base_dir, "tts.mp3")

# 🗣️ Generar WAV amb eSpeak-ng
espeak_cmd = ["espeak-ng", "-v", voice, text, "--stdout"]
with open(output_wav, "wb") as wav_file:
    subprocess.run(espeak_cmd, stdout=wav_file)

# 🎧 Convertir a MP3 amb ffmpeg
subprocess.run(["ffmpeg", "-y", "-i", output_wav, output_mp3])

🌍 3. Actualitza index.php amb idiomes/veus disponibles

Substitueix la llista de veus per idiomes compatibles amb eSpeak-ng:

$voices = [
    "ca", // Català
    "es", // Espanyol
    "en", // Anglès
    "fr", // Francès
    "de", // Alemany
    "it", // Italià
    "pt", // Portuguès
    "ru", // Rus
    "ja", // Japonès
];

Pots afegir variants com ca+f3 o en+m1 per canviar el timbre (masculí/femení) si vols més control.


🧪 4. Prova-ho

Ara, quan seleccionis una veu (en realitat, un idioma o variant) des del formulari, es passarà com a paràmetre a espeak-ng, que generarà l’àudio amb la veu corresponent.


🎯 Vols més personalització?

  • Puc ajudar-te a llistar totes les veus disponibles amb espeak-ng --voices
  • O afegir un selector de velocitat i to
  • O fins i tot fer que el sistema recordi l’última veu usada

Vols que et prepari un script per mostrar totes les veus disponibles al teu sistema?