Cada vegada es creen més dades obertes que podem usar per a crear bots de conversa, o assistents virtuals, com ara les del Mozilla CommonVoice. Si t’han inspirat a crear el teu propi assistent virtual, però no saps per on començar, t’ajudem! En aquest article trobaràs uns dels punts per tenir en compte, les preguntes que t’hauràs de fer, i et donem uns quants recursos que poden ser d’utilitat.
Abans de començar, quines preguntes cal fer?
Assistent de veu, o de xat?
Abans de començar, cal tenir en compte que crear un assistent de veu acostuma a tenir més complexitat que un assistent de xat. A més, per poder triar les dades necessàries per a entrenar el model, cal saber el tipus d’assistent que es crearà.
Quin és el públic objectiu?
Com més genèric siguin els teus usuaris objectius, més dades necessites. Pensa sobretot en característiques que poden afectar el so de la veu, però també en característiques relacionades amb el vocabulari. Exemples són usuaris amb diferents dialectes o de diferents edats. A més, si el teu assistent té, per exemple, la tasca d’ajudar a enginyers informàtics amb dubtes tecnològics d’alta complexitat, s’ha d’entrenar el model amb l’argot necessari.
Quina complexitat tindrà l’assistent?
Un assistent virtual pot tenir una utilitat molt específica, com ara ajudar-te a triar el millor restaurant, o una més general, com ara dir-te quin temps farà demà, quina és la millor ruta per anar al poble del costat, i a més quin és el vol més barat cap a Barcelona. Com et podràs imaginar, crear un assistent virtual més limitat requereix menys temps que crear-ne un de general.
On s’ha d’integrar?
Els algoritmes que mencionem més endavant s’executen amb Python. Si vols usar algun d’aquests, hauràs de tenir-ho en compte a l’hora de decidir on integrar el teu assistent virtual. Si necessites una integració per exemple amb PHP o JavaScript caldrà adaptar-lo, crear un servidor amb Python que es comuniqui amb el teu servidor, o usar algun altre algoritme o aplicació.
Necessitaràs moltes dades
Què cal per poder crear un assistent virtual? Necessitem dades massives de veu (gravacions d’àudio), que per ser suficientment representatives, han d’incloure variants dialectals i edats diverses.
Explica projecte Aina a Twitter.
Per poder entrenar el model de forma exhaustiva, necessitaràs dades massives. Com mencionat anteriorment, tingues en compte el públic que usarà el teu assistent de veu. Necessitaràs dades que representin a tots els usuaris objectius.
Si tens pensat crear un assistent de xat, no es necessiten gravacions de veu, i pots usar per exemple les dades del “C4 Multilingual Dataset“. Dades de veu es poden trobar per exemple en el nou projecte “CommonVoice” de Mozilla, al que també pots contribuir registrant la teva veu o validant les veus dels altres. Ambdues opcions consten de dades en una gran varietat de llengües, entre d’altres el català.

Triar com gestionar de diàlegs
Per gestionar un diàleg, necessites rebre la consulta de l’usuari, transformar-la en un format que el teu algoritme sap processar, i crear una resposta adequada. Aquest és un procés complex, que no explicarem en detall en aquest article, però en general es pot fer de dues maneres (o una combinació): aprenent unes normes fixes, amb les quals el model aprèn que algun tipus d’input es relaciona amb un output específic, o amb un model probabilístic, que va aprenent estratègies de diàleg gràcies a converses d’exemple. El primer tipus és més fàcil i menys abstracte d’implementar que el segon, però el segon ajuda a crear converses més naturals.
Finalment, un algoritme de processament del llenguatge natural
Per poder començar a construir el teu propi assistent virtual, necessites triar un algoritme que t’ajudi a processar el llenguatge natural (PLN) de l’usuari. Dóna-li un cop d’ull a la web de Hugging Face, per trobar milers de models preentrenats per al PLN, amb funcionalitats variades com ara classificació, respondre preguntes, traduccions… Els diferents mòduls de python proporcionats per transformers integren les llibreries Jac, PyTorch i Tensorflow, i són independents l’un de l’altre, per tal de poder entrenar únicament els models necessaris. El model BERTa, part dels transformers, també està disponible en català.