Open
Description
Describe the bug
Echo Cancellation did not work even if I enable all these properties for Room
and LocalParticipant
. This led to duplicate message as shown below, because Audio Engine often take output voice as the input as well.
Related thread on Slack.
try await liveKitRoom.connect(
url: url,
token: token,
connectOptions: ConnectOptions(
reconnectAttempts : 1000,
reconnectAttemptDelay : 3
),
roomOptions: RoomOptions(
defaultAudioCaptureOptions: .init(
echoCancellation: true,
noiseSuppression: true,
autoGainControl: true,
typingNoiseDetection: true,
highpassFilter: true
)
)
)
try await localParticipant.setMicrophone(
enabled: true,
captureOptions: .init(
echoCancellation: true,
noiseSuppression: true,
autoGainControl: true,
typingNoiseDetection: true,
highpassFilter: true
)
)
SDK Version
2.0.14 and also upgraded to the latest version but no luck
iOS/macOS Version
iOS 18.1 and iOS 17.5
Xcode Version
Xcode 15.4.0 and Xcode 16.0.0
Steps to Reproduce
It's quite easy to reproduce just by creating a room, enable localParticipant microphone, and then start talking to each other.
Expected behavior
The transcriptions that received from delegate need to be filtered by echo cancellation somehow.
func room(_:participant:trackPublication:didReceiveTranscriptionSegments:)