feat(audio): support LPCM and fix waveform distortion#1574
Merged
DavidsonGomes merged 1 commit intoEvolutionAPI:developfrom Jun 8, 2025
Merged
feat(audio): support LPCM and fix waveform distortion#1574DavidsonGomes merged 1 commit intoEvolutionAPI:developfrom
DavidsonGomes merged 1 commit intoEvolutionAPI:developfrom
Conversation
Contributor
Reviewer's GuideIntroduces automatic detection and handling of LPCM audio streams in the WhatsApp integration by adjusting the ffmpeg invocation when encountering raw PCM input, and adds a new dependency to support LPCM decoding. Sequence Diagram for LPCM Audio ProcessingsequenceDiagram
participant AudioSource
participant BaileysStartupService
participant FFMpegProcess as ffmpeg
AudioSource->>BaileysStartupService: Provides audio (e.g., URL to .lpcm file)
BaileysStartupService->>BaileysStartupService: isLpcm = checkAudioFormat(audio)
alt isLpcm is true
BaileysStartupService->>BaileysStartupService: Log "Detected LPCM input"
BaileysStartupService->>FFMpegProcess: Initialize with LPCM settings (s16le, 24000Hz, 1ch)
else isLpcm is false
BaileysStartupService->>FFMpegProcess: Initialize with default settings for other formats
end
BaileysStartupService->>FFMpegProcess: Set output to ogg/libopus, no video
FFMpegProcess->>BaileysStartupService: Processed audio stream (OGG/Opus)
BaileysStartupService-->>AudioSource: Returns processed OGG audio stream
Updated Class Diagram for BaileysStartupServiceclassDiagram
class ChannelStartupService {
%% Base class placeholder
}
class BaileysStartupService {
-logger: Logger
+processAudio(audio: string | Buffer) : Promise~PassThrough~
}
BaileysStartupService --|> ChannelStartupService
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This update adds automatic detection and conversion of LPCM (Linear PCM) audio files — a format commonly generated by Google Text-to-Speech — ensuring proper sample rate and compatibility.
✅ The following formats were tested and confirmed working:
m4a,mp3,mp4,wav,opus,oga,ogg, andlpcm.🧪 During testing, the resulting audio files consistently displayed waveform previews (waves) on WhatsApp for Android, iOS, and Web.
Summary by Sourcery
Support automatic detection and conversion of LPCM audio streams in the WhatsApp integration to fix distorted waveforms and ensure cross-platform compatibility.
New Features:
Bug Fixes:
Build: