A friend of mine claims that it is possible to identify every anonymous call (prepaid, skype, etc) only using voice recognition. However the scientific literature which I've read so far is ambiguous, i.e. if you apply voice recognition to a limited number of individuals, you could reliably identify who is who. However if the number reaches a certain limit this becomes impossible. So the question is: Is user identification using voice recognition of all network participants really possible or is my friend just being paranoid?
However if the number reaches a certain limit this becomes impossible.
Why? The basic problem is: given a signal, determine the matching fingerprint(s). This problem is parallelizable, and thus could be solved by using parallel architectures (GPUs, even FPGAs).
Once you have a way to reliably compare your signal to one fingerprint - and this is possible even in known scientific literature - you can run several instances of this matching algorithm, one per fingerprint in your database (or group of fingerprints) and collect the result at the end.
A 2006 classified NSA memo, leaked by Snowden, states that some speaker identification techniques known to the NSA work, in their own words,
largely independently of the language spoken.
Uniqueness is probably an issue, when considering such a large scale. Even real fingerprints are not unique.
Highly speculative thought here. It might be possible to combine the voice fingerprints with other known information (location, owner of that number/device, names being spoken in the conversation itself e.g. "Hi John"). This can be done in an investigation, should the need arise. It might be possible to do this automatically, but again this is pure speculation.
Anyway, what about storage? Let's do some simple computation.
Take this paper as an example of a publicly known automatic speaker recognition system. It claims an Equal Error Rate (EER) between 0.57% and 2.62% with 25 seconds of training recording per person.
At 8 kbps, 25 seconds equals 200 KB. Multiply this by 7×109 (7 billion people on this Earth), and you get 1.4 petabytes.
While it may seem huge, it is not impossible.
The NSA data center in Utah is assumed to have a maximum capacity of 3 to 12 exabytes. Google is estimated to hold 10-15 exabytes of data. We are talking about thousands of petabytes here.
Although this is clearly an estimate, the order of magnitude should be correct.
Moreover, you don't really need to keep all those training recordings. After you have extracted the features you want, you could, at least theoretically speaking, delete them, which means that you can save a lot of space. We are also not considering classified advances in speaker identification systems, which might be possible.
It's not clear whether it is possible to do this in real time, due to the large number of fingerprints, but non real time identification certainly seems feasible even if you gather samples from every living person on Earth.
Conclusion. While we obviously don't know for sure, automatic speaker identification on phone calls, given training samples of every person on Earth, seems a challenging but technically feasible problem for a very advanced organization. It's not clear if it can be done in real time. Fingerprint uniqueness (or lack thereof) may be a problem at such a large scale.
Well it is probably true and trivial to fake. You can find speech engines around, and if you use such a speech engine, it will not be possible to identify the human being that prepared the text.
Worse, it is easy to get words and/or partial sentences from public people from radio, or internet. Simple audio file processing could then make them say more or less anything. And you soon fall in the same problem of identifying gangsters wearing masks from facial recognition...