Noi sentiamo una frase, ma il computer ne ascolta un'altra. Cosa sta succedendo?
Due ricercatori dell'Università della California, Berkeley, hanno sfruttato la tecnica utilizzata dai computer per decodificare il linguaggio umano per nascondere messaggi all'interno di frammenti di audio. Quando l'audio viene trascritto da un programma di riconoscimento vocale come DeepSpeech di Mozilla, il computer riesce a trascrivere il messaggio nascosto invece dell'audio che ascoltiamo.
Anche tu riesci a sentire quello che sento io?
Il metodo consiste essenzialmente nel nascondere un campione "silenzioso" dell'audio che si desidera effettivamente trascrivere in una porzione diversa del file. Il "messaggio segreto" viene percepito dall'orecchio umano come nient'altro che un po' di rumore di fondo, ma a causa del modo in cui i computer elaborano l'audio, recepiscono molto chiaramente l'audio nascosto. In un articolo i ricercatori descrivono come sono stati in grado di manipolare DeepSpeech per nascondere messaggi all'interno di un campione audio.
Ha a che fare con il modo in cui gli algoritmi di machine learning riconoscono il parlato. Considerare l'intera gamma di possibili combinazioni di lettere che ogni campione audio potrebbe potenzialmente contenere è proibitivo, quindi gli algoritmi calcolano ciò che equivale a un'ipotesi plausibile. Un algoritmo mapperà ogni bit di audio che campiona in una distribuzione di probabilità di possibili lettere e caratteri e sceglierà il più probabile. L'addestramento dell'algoritmo su molti diversi campioni audio è ciò che consente di ottenere una buona idea di quello corretto.
Computer vs. Umano
I ricercatori sono in grado di sfruttare questo sistema di ipotesi formulate creando audio che sposti la decisione del computer in favore delle parole che vogliono essere trascritte, invece del messaggio che è nascosto all'interno. E, in una tattica simile a come vengono addestrati gli algoritmi, il programma dei ricercatori sperimenta molte diverse varianti dello stesso campione audio per abbinare il loro messaggio in modo sonoro a ciò che ascoltiamo, anche se le parole sono completamente diverse.
I ricercatori hanno testato il loro lavoro su 100 snippet di audio dal set di dati Common Voice di Mozilla e hanno concluso che funziona sempre. Sono persino in grado di nascondere il testo all'interno dell'audio senza parlare, ad esempio in un frammento di musica classica. E poiché DeepSpeech campiona l'audio molte volte al secondo, il testo nascosto può essere molto più lungo di quello che viene effettivamente ascoltato, fino a un limite di 50 caratteri al secondo di audio.
L'audio nascosto potrebbe essere usato per svelare messaggi oltre gli ascoltatori umani o per ingannare programmi di trascrizione di computer. Ma potrebbe non essere necessariamente così facile hackerare i programmi di riconoscimento vocale. Poiché hanno utilizzato DeepSpeech, che ha il suo codice open source, i ricercatori hanno usato quello che viene chiamato un approccio "white box", il che significa che sapevano tutto su come funziona il programma. Usare un programma di riconoscimento vocale con codice e algoritmi non noti renderebbe molto più difficile l'hacking. Questi esempi sono mirati specificamente a DeepSpeech, quindi, ad oggi, un diverso programma di riconoscimento vocale non rileverebbe mai l'audio nascosto.