Diferență între revizuiri ale paginii „Infrastructură pentru pronunții”

De la dexonline wiki
Sari la navigare Sari la căutare
(Pagină nouă: Acesta este un document de design pentru adăugarea pronunțiilor la DEX online. El discută strict pronunția umană, nu cu un sintetizator de voce. Acest proiect începe printr-...)
 
Linia 1: Linia 1:
Acesta este un document de design pentru adăugarea pronunțiilor la DEX online. El discută strict pronunția umană, nu cu un sintetizator de voce.
Acesta este un document de design pentru adăugarea pronunțiilor la ''dexonline''. El discută strict pronunția umană, nu cu un sintetizator de voce.


Acest proiect începe printr-un parteneriat cu o fundație și o agenție de media. Scenariul este:
Acest proiect începe printr-un parteneriat cu o fundație și o agenție de media. Scenariul este:
Linia 5: Linia 5:
* Fundația derulează o campanie umanitară, dezvoltată împreună cu agenția de media;
* Fundația derulează o campanie umanitară, dezvoltată împreună cu agenția de media;
* Utilizatorii sunt rugați să doneze bani prin SMS;
* Utilizatorii sunt rugați să doneze bani prin SMS;
* Donatorii capătă dreptul de a înregistra pronunția unui cuvânt pe DEX online
* Donatorii capătă dreptul de a înregistra pronunția unui cuvânt pe ''dexonline''.


== Pasul 1: Autentificarea donatorilor ==
== Pasul 1: Autentificarea donatorilor ==


Trebuie ca numai donatorii să aibă dreptul de a introduce o pronunție. Presupunem existența unui dispecer care înregistrează SMS-urile primite (DEX online nu are controlul asupra acestui pas). DEX online trebuie să comunice cu dispecerul pentru a afla dacă un utilizator al site-ului are sau nu dreptul de a înregistra o pronunție.
Trebuie ca numai donatorii să aibă dreptul de a introduce o pronunție. Presupunem existența unui dispecer care înregistrează SMS-urile primite (''dexonline'' nu are controlul asupra acestui pas). ''Dexonline'' trebuie să comunice cu dispecerul pentru a afla dacă un utilizator al site-ului are sau nu dreptul de a înregistra o pronunție.


=== Metoda 1 (recomandată) ===
=== Metoda 1 (recomandată) ===


* Dispecerul creează un serviciu web pe care DEX online îl poate folosi pentru a valida un număr de telefon, de exemplu `http://dispecer.ro/api/validareNumar?nr=0720123456`
* Dispecerul creează un serviciu web pe care ''dexonline'' îl poate folosi pentru a valida un număr de telefon, de exemplu `http://dispecer.ro/api/validareNumar?nr=0720123456`
* Pentru utilizatorii care au donat de mai multe ori, serviciul raportează și „creditul”: câte pronunții mai are dreptul să înregistreze donatorul
* Pentru utilizatorii care au donat de mai multe ori, serviciul raportează și „creditul”: câte pronunții mai are dreptul să înregistreze donatorul
* Dispecerul primește un SMS de la un donator
* Dispecerul primește un SMS de la un donator
* Dispecerul salvează numărul de telefon într-o bază de date
* Dispecerul salvează numărul de telefon într-o bază de date
* Donatorul vizitează pagina DEX online de înregistrare a pronunției și introduce numărul său de telefon
* Donatorul vizitează pagina ''dexonline'' de înregistrare a pronunției și introduce numărul său de telefon
* DEX online accesează serviciul dispecerului pentru a valida numărul
* ''Dexonline'' accesează serviciul dispecerului pentru a valida numărul


=== Metoda 2 ===
=== Metoda 2 ===


* DEX online creează un serviciu web pe care dispecerul îl poate folosi pentru a semnala un număr de telefon de la care s-a donat, de exemplu `http://dexonline.ro/api/numarValid?cod=09fe28dce4e3`
* ''Dexonline'' creează un serviciu web pe care dispecerul îl poate folosi pentru a semnala un număr de telefon de la care s-a donat, de exemplu `http://dexonline.ro/api/numarValid?cod=09fe28dce4e3`
* Dispecerul primește un SMS de la un donator
* Dispecerul primește un SMS de la un donator
* Dispecerul accesează serviciul DEX online pentru a semnala numărul donatorului
* Dispecerul accesează serviciul ''dexonline'' pentru a semnala numărul donatorului
* Donatorul vizitează pagina DEX online de înregistrare a pronunției și introduce numărul său de telefon
* Donatorul vizitează pagina ''dexonline'' de înregistrare a pronunției și introduce numărul său de telefon
* Pentru utilizatorii care au donat de mai multe ori, DEX online ține minte „creditul”: câte pronunții mai are dreptul să înregistreze donatorul
* Pentru utilizatorii care au donat de mai multe ori, ''dexonline'' ține minte „creditul”: câte pronunții mai are dreptul să înregistreze donatorul
* DEX online verifică dacă numărul introdus are credit
* ''Dexonline'' verifică dacă numărul introdus are credit


=== Metoda 3 ===
=== Metoda 3 ===


* Dispecerul creează un serviciu web pe care DEX online îl poate folosi pentru a verifica validitatea unui cod, de exemplu `http://dispecer.ro/api/validareCod?cod=XIALSLQSLE`
* Dispecerul creează un serviciu web pe care ''dexonline'' îl poate folosi pentru a verifica validitatea unui cod, de exemplu `http://dispecer.ro/api/validareCod?cod=XIALSLQSLE`
* Dispecerul primește un SMS de la un donator
* Dispecerul primește un SMS de la un donator
* Dispecerul generează un cod unic pe care îl salvează într-o bază de date
* Dispecerul generează un cod unic pe care îl salvează într-o bază de date
* Dispecerul îi trimite codul donatorului
* Dispecerul îi trimite codul donatorului
* Donatorul vizitează pagina DEX online de înregistrare a pronunției și introduce codul
* Donatorul vizitează pagina ''dexonline'' de înregistrare a pronunției și introduce codul
* DEX online accesează serviciul dispecerului pentru a valida codul
* ''Dexonline'' accesează serviciul dispecerului pentru a valida codul


=== Metoda 4 ===
=== Metoda 4 ===


* DEX online creează un serviciu web pe care dispecerul îl poate folosi pentru a semnala un cod valid, de exemplu `http://dexonline.ro/api/codValid?cod=XIALSLQSLE`
* ''Dexonline'' creează un serviciu web pe care dispecerul îl poate folosi pentru a semnala un cod valid, de exemplu `http://dexonline.ro/api/codValid?cod=XIALSLQSLE`
* Dispecerul primește un SMS de la un donator
* Dispecerul primește un SMS de la un donator
* Dispecerul generează un cod unic pe care îl salvează într-o bază de date
* Dispecerul generează un cod unic pe care îl salvează într-o bază de date
* Dispecerul îi trimite codul donatorului
* Dispecerul îi trimite codul donatorului
* Dispecerul accesează serviciul DEX online pentru a semnala emiterea unui nou cod
* Dispecerul accesează serviciul ''dexonline'' pentru a semnala emiterea unui nou cod
* Donatorul vizitează pagina DEX online de înregistrare a pronunției și introduce codul
* Donatorul vizitează pagina ''dexonline'' de înregistrare a pronunției și introduce codul
* DEX online verifică dacă codul introdus a fost într-adevăr emis
* ''Dexonline'' verifică dacă codul introdus a fost într-adevăr emis


== Înregistrarea pronunției ==
== Înregistrarea pronunției ==
Linia 98: Linia 98:
Metodele 3 și 4 de autentificare suferă de un neajuns. Ele cer ca dispecerul să-i comunice un cod unic donatorului. Înțelegem că acest pas este problematic. Campaniile umanitare sunt în general configurate să răspundă cu un SMS generic de mulțumire, dar nu pot să răspundă cu un SMS personalizat cu un cod unic.
Metodele 3 și 4 de autentificare suferă de un neajuns. Ele cer ca dispecerul să-i comunice un cod unic donatorului. Înțelegem că acest pas este problematic. Campaniile umanitare sunt în general configurate să răspundă cu un SMS generic de mulțumire, dar nu pot să răspundă cu un SMS personalizat cu un cod unic.


Metoda 1 presupune ca DEX online să aibă acces la numerele de telefon ale donatorilor, pe care aceștia le introduc pe pagina de întâmpinare. Evident, DEX online se angajează să nu salveze aceste numere și să nu facă nimic altceva cu ele decât să le verifice.
Metoda 1 presupune ca ''dexonline'' să aibă acces la numerele de telefon ale donatorilor, pe care aceștia le introduc pe pagina de întâmpinare. Evident, ''dexonline'' se angajează să nu salveze aceste numere și să nu facă nimic altceva cu ele decât să le verifice.


Metoda 2 presupune ca DEX online să salveze date despre fiecare număr (cel puțin creditul). Pentru a nu avea de-a face cu date personale, DEX online va salva o funcție one-way a numărului de telefon (md5, de exemplu).
Metoda 2 presupune ca ''dexonline'' să salveze date despre fiecare număr (cel puțin creditul). Pentru a nu avea de-a face cu date personale, ''dexonline'' va salva o funcție one-way a numărului de telefon (md5, de exemplu).


Este bine să permitem o singură înregistrare pentru un cuvânt, sau el poate fi revendicat de mai mulți donatori? Noi nu avem o preferință în acest sens. Din punct de vedere tehnic, pronunțiile multiple sunt mai simplu de implementat, căci nu trebuie programat un mecanism de excludere pe durata moderării. Dacă vom permite mai multe pronunții, le vom roti aleator.
Este bine să permitem o singură înregistrare pentru un cuvânt, sau el poate fi revendicat de mai mulți donatori? Noi nu avem o preferință în acest sens. Din punct de vedere tehnic, pronunțiile multiple sunt mai simplu de implementat, căci nu trebuie programat un mecanism de excludere pe durata moderării. Dacă vom permite mai multe pronunții, le vom roti aleator.

Versiunea de la data 9 septembrie 2015 17:52

Acesta este un document de design pentru adăugarea pronunțiilor la dexonline. El discută strict pronunția umană, nu cu un sintetizator de voce.

Acest proiect începe printr-un parteneriat cu o fundație și o agenție de media. Scenariul este:

  • Fundația derulează o campanie umanitară, dezvoltată împreună cu agenția de media;
  • Utilizatorii sunt rugați să doneze bani prin SMS;
  • Donatorii capătă dreptul de a înregistra pronunția unui cuvânt pe dexonline.

Pasul 1: Autentificarea donatorilor

Trebuie ca numai donatorii să aibă dreptul de a introduce o pronunție. Presupunem existența unui dispecer care înregistrează SMS-urile primite (dexonline nu are controlul asupra acestui pas). Dexonline trebuie să comunice cu dispecerul pentru a afla dacă un utilizator al site-ului are sau nu dreptul de a înregistra o pronunție.

Metoda 1 (recomandată)

  • Dispecerul creează un serviciu web pe care dexonline îl poate folosi pentru a valida un număr de telefon, de exemplu `http://dispecer.ro/api/validareNumar?nr=0720123456`
  • Pentru utilizatorii care au donat de mai multe ori, serviciul raportează și „creditul”: câte pronunții mai are dreptul să înregistreze donatorul
  • Dispecerul primește un SMS de la un donator
  • Dispecerul salvează numărul de telefon într-o bază de date
  • Donatorul vizitează pagina dexonline de înregistrare a pronunției și introduce numărul său de telefon
  • Dexonline accesează serviciul dispecerului pentru a valida numărul

Metoda 2

  • Dexonline creează un serviciu web pe care dispecerul îl poate folosi pentru a semnala un număr de telefon de la care s-a donat, de exemplu `http://dexonline.ro/api/numarValid?cod=09fe28dce4e3`
  • Dispecerul primește un SMS de la un donator
  • Dispecerul accesează serviciul dexonline pentru a semnala numărul donatorului
  • Donatorul vizitează pagina dexonline de înregistrare a pronunției și introduce numărul său de telefon
  • Pentru utilizatorii care au donat de mai multe ori, dexonline ține minte „creditul”: câte pronunții mai are dreptul să înregistreze donatorul
  • Dexonline verifică dacă numărul introdus are credit

Metoda 3

  • Dispecerul creează un serviciu web pe care dexonline îl poate folosi pentru a verifica validitatea unui cod, de exemplu `http://dispecer.ro/api/validareCod?cod=XIALSLQSLE`
  • Dispecerul primește un SMS de la un donator
  • Dispecerul generează un cod unic pe care îl salvează într-o bază de date
  • Dispecerul îi trimite codul donatorului
  • Donatorul vizitează pagina dexonline de înregistrare a pronunției și introduce codul
  • Dexonline accesează serviciul dispecerului pentru a valida codul

Metoda 4

  • Dexonline creează un serviciu web pe care dispecerul îl poate folosi pentru a semnala un cod valid, de exemplu `http://dexonline.ro/api/codValid?cod=XIALSLQSLE`
  • Dispecerul primește un SMS de la un donator
  • Dispecerul generează un cod unic pe care îl salvează într-o bază de date
  • Dispecerul îi trimite codul donatorului
  • Dispecerul accesează serviciul dexonline pentru a semnala emiterea unui nou cod
  • Donatorul vizitează pagina dexonline de înregistrare a pronunției și introduce codul
  • Dexonline verifică dacă codul introdus a fost într-adevăr emis

Înregistrarea pronunției

După autentificare, donatorul vede o pagină cu următoarele elemente:

  • o modalitate de selectare a cuvântului pe care dorește să-l pronunțe;
  • o modalitate de introducere a unei capturi de microfon;
  • un câmp unde introduce numele sub care vrea să apară;
  • informații despre sisteme compatibile, recomandări pentru o înregistrare bună etc.

El trebuie să poată asculta înregistrarea sa și să o poată repeta până când este mulțumit de rezultat.

După ce ne trimite formularul, donatorul primește o pagină de mulțumire și informații despre procesul de moderare.

Captura de microfon

Acest aspect este de departe cel mai spinos. Nu există un standard bine definit, portabil pe toate browserele majore și implementabil cu tehnologii libere.

  • nu dorim să folosim Flash sau Silverlight, căci nu sunt tehnologii libere
  • în HTML 4 nu este posibil ca o pagină să preia controlul microfonului
  • în HTML 5 este posibil cu `getUserMedia()`, care însă este suportat numai în Chrome, Firefox și Opera (NU în IE sau Safari)

Vom investiga.

Moderarea

Pronunția nu devine activă până când nu este editată și aprobată de un moderator. Interfața noastră de moderare va permite următoarele operații:

  • eliminarea zgomotului de fond
  • eliminarea tăcerii de la începutul / sfârșitul pronunției
  • opțional, editarea și decuparea în format grafic (undă de sunet)

Avem nevoie de o modalitate de a-i comunica donatorului aprobarea sau respingerea înregistrării.

Metoda 1 (recomandată)

La trimitere, donatorul furnizează și adresa de e-mail. La aprobarea sau la respingerea înregistrării, sistemul îi trimite un mesaj autogenerat. Dacă înregistrarea a fost respinsă, utilizatorul poate încerca din nou. Această metodă este mai naturală, dar presupune divulgarea adresei de e-mail.

Metoda 2

Donatorul poate vizita periodic o pagină cu informații despre starea moderării. Accesul la pagină se face pe baza numărului de telefon. Dezavantajul este că oricine poate verifica numărul de telefon al altcuiva.

Metoda 3

După ce trimite înregistrarea, donatorul primește un cod unic. Pe baza acestui cod, el poate vizita periodic o pagină cu informații despre starea moderării.


Limitări și avertismente

Metodele 3 și 4 de autentificare suferă de un neajuns. Ele cer ca dispecerul să-i comunice un cod unic donatorului. Înțelegem că acest pas este problematic. Campaniile umanitare sunt în general configurate să răspundă cu un SMS generic de mulțumire, dar nu pot să răspundă cu un SMS personalizat cu un cod unic.

Metoda 1 presupune ca dexonline să aibă acces la numerele de telefon ale donatorilor, pe care aceștia le introduc pe pagina de întâmpinare. Evident, dexonline se angajează să nu salveze aceste numere și să nu facă nimic altceva cu ele decât să le verifice.

Metoda 2 presupune ca dexonline să salveze date despre fiecare număr (cel puțin creditul). Pentru a nu avea de-a face cu date personale, dexonline va salva o funcție one-way a numărului de telefon (md5, de exemplu).

Este bine să permitem o singură înregistrare pentru un cuvânt, sau el poate fi revendicat de mai mulți donatori? Noi nu avem o preferință în acest sens. Din punct de vedere tehnic, pronunțiile multiple sunt mai simplu de implementat, căci nu trebuie programat un mecanism de excludere pe durata moderării. Dacă vom permite mai multe pronunții, le vom roti aleator.