Skip to content

Echo cancellation does not work as expected #527

Open
@leson1106

Description

@leson1106

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:)

Screenshots
ezgif-5-005d16fab7

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions