Signal-ios: Audio quality

Created on 30 Jul 2014  ·  12Comments  ·  Source: signalapp/Signal-iOS

Subjective audio quality and latency is good but not as good as Facetime Audio.

Facetime Audio sounds like it uses a much higher sampling rate whereas Signal iOS sounds more like traditional 8 KHz POTS sampling rate.

Tested between two iPhone 5s, both on LTE cellular in the same location in Australia.

Most helpful comment

I'd like to reverse my stance on audio quality, after using Signal multiple times a day -- I'd really prefer better sound quality.

All 12 comments

I've been looking at this. Yeah, higher sampling rate might be a good thing. Also wanted to change the codec from Speex to Opus. Will take care of this when the rest works ;)

I quite liked the quality, it was pure voice and nothing else. My only complaint is the slight delay between when someone speaks and when the recipient hears it.

I'd rather it works well even with poor reception than have better quality calls.

-my 2c

Ideally the app would offer higher quality voice when the connection bandwidth supports it, and fall back to standard quality if needed.

My cellular network supports http://en.wikipedia.org/wiki/Adaptive_Multi-Rate_Wideband when I make normal phone calls from my iPhone to another phone that supports AMR-WB, and it sounds very noticeably better than traditional phone calls, similar to FaceTime Audio. You quickly become used to it.

Well, you need to be careful about those optimizations as they might result in information leaks to an attacker about who is speaking or what someone is saying.
No changes planned for now. Might switch to Opus someday but not in the following weeks.

I'd like to reverse my stance on audio quality, after using Signal multiple times a day -- I'd really prefer better sound quality.

Well, you need to be careful about those optimizations as they might result in information leaks to an attacker about who is speaking or what someone is saying.

Do you any formal analysis of this threat? Most of the size-channel attacks I've seen related to size in other domains are fairly brittle and the usability hit to Signal is pretty severe.

That being said, the command-line encoder has a hard CBR mode for this exact scenario.

Do you any formal analysis of this threat?

I looked into this and the answer is yes: you can reconstruct phonemes from raw packet data. The Opus RFC suggests using CBR mode and changing the encoding rate based on network conditions. This is, of course, not limited to Opus, it could be done with Speex as well.

This may belong to this other issue: https://github.com/WhisperSystems/Signal-iOS/issues/22. User reporting of no sound on either side:
Alice (on Android): https://gist.github.com/65217ece7eb1a154c4dd1ecf48d1cb8d
Bob (on iOS): https://gist.github.com/66fbdbd86e00a1f6ebdb0b7b7aafba2f

@riyapenn Yes, there are several related bugs. This one best captures the core issue.

I have a feeling that Opus isn't supported by Signal because iOS doesn't support Opus.

It's a pity because the call quality would be so much better if we had Opus.

If you are frustrated by Signal's audio quality, just star the top post.

I have a feeling that Opus isn't supported by Signal because iOS doesn't support Opus.

That's correct, although I doubt the Signal team would reject a PR offering protocol negotiation or software decoding of Opus on iOS.

That being said, the issues raised by @Cormak and @riyapenn have been covered at length in other tickets. I would suggest this thread be locked to contributors to the project as no productive input appears to be taking place.

Will be in 2.7.0

I have a feeling that Opus isn't supported by Signal because iOS doesn't support Opus.

Opus is included in the WebRTC framework, which we're using in beta now, and will be in the app store soon.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zstal picture zstal  ·  4Comments

loki187 picture loki187  ·  3Comments

echarlie picture echarlie  ·  5Comments

nanotechz9l picture nanotechz9l  ·  5Comments

UtkarshBhatthere picture UtkarshBhatthere  ·  4Comments