Convert SPX to AU

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

SPX vs AU Format Comparison

Aspect SPX (Source Format) AU (Target Format)
Format Overview
SPX
Speex Audio Codec

Speex is an open-source, patent-free audio codec designed specifically for speech compression at low bitrates. Developed by Jean-Marc Valin and the Xiph.Org Foundation, Speex provides narrowband (8 kHz), wideband (16 kHz), and ultra-wideband (32 kHz) speech encoding. Though officially superseded by Opus, Speex remains in use in legacy VoIP and embedded systems.

Lossy Legacy
AU
Sun/NeXT Audio Format

AU (Sun Audio) is an audio file format introduced by Sun Microsystems in the late 1980s for Unix workstations. It stores audio data as simple PCM samples or compressed using mu-law/A-law encoding, with a minimal header structure. AU became the standard audio format for Java, NeXT computers, and Solaris systems, and remains supported across Unix/Linux platforms.

Lossless Legacy
Technical Specifications
Sample Rates: 8 kHz, 16 kHz, 32 kHz
Bit Rates: 2–44 kbps
Channels: Mono, Stereo
Codec: Speex (CELP-based)
Container: Ogg (.spx), raw Speex
Sample Rates: 8 kHz – 48 kHz (commonly 8 kHz, 22.05 kHz, 44.1 kHz)
Bit Depth: 8-bit mu-law, 8/16/24/32-bit PCM, 32/64-bit float
Channels: Mono, Stereo, Multichannel
Codec: PCM, mu-law, A-law, ADPCM
Container: AU/SND (.au, .snd)
Audio Encoding

Speex uses Code-Excited Linear Prediction (CELP) optimized for voice at very low bitrates:

# Encode to Speex wideband (16 kHz)
ffmpeg -i input.wav -codec:a libspeex \
  -ar 16000 -b:a 24k output.spx

# Narrowband Speex for VoIP (8 kHz)
ffmpeg -i input.wav -codec:a libspeex \
  -ar 8000 -b:a 15k output.spx

AU uses a simple binary header followed by raw audio data. The most common encoding is mu-law (8-bit logarithmic) for telephony or linear PCM for higher quality:

# Encode to AU with mu-law (8-bit, 8 kHz)
ffmpeg -i input.wav -codec:a pcm_mulaw \
  -ar 8000 -ac 1 output.au

# Encode to AU with linear PCM (16-bit)
ffmpeg -i input.wav -codec:a pcm_s16be \
  -ar 44100 output.au
Audio Features
  • Metadata: Vorbis Comments in Ogg container
  • Album Art: Not typically used
  • Gapless Playback: Via Ogg framing
  • Streaming: Designed for real-time VoIP
  • VAD: Voice Activity Detection built-in
  • DTX: Discontinuous Transmission for bandwidth saving
  • Metadata: Minimal — optional annotation field in header
  • Album Art: Not supported
  • Gapless Playback: Inherent — no encoder padding in PCM mode
  • Streaming: Not designed for streaming
  • Seeking: Fast — fixed-size frames for PCM data
  • Chapters: Not supported
Advantages
  • Excellent speech quality at very low bitrates
  • Open-source and completely patent-free
  • Built-in acoustic echo cancellation and noise suppression
  • Voice Activity Detection reduces bandwidth usage
  • Multiple bandwidth modes (narrowband to ultra-wideband)
  • Extremely simple format with minimal header overhead
  • Native support across all Unix, Linux, and Solaris systems
  • Built-in Java audio support via javax.sound
  • Big-endian byte order eliminates byte-swapping on SPARC/MIPS
  • Mu-law encoding efficient for telephony and voice applications
  • No licensing fees or patent restrictions
Disadvantages
  • Officially deprecated in favor of Opus
  • Poor music encoding quality
  • Limited to speech content only
  • Declining software support
  • Maximum 32 kHz sample rate
  • Very limited metadata and tagging capabilities
  • No album art or rich tag support
  • Large file sizes in PCM mode, similar to WAV
  • Mu-law encoding quality inferior to modern lossy codecs
  • Minimal support on Windows and macOS consumer software
  • No built-in lossless compression option (only PCM or mu-law)
Common Uses
  • Legacy VoIP applications
  • Embedded speech recording devices
  • Asterisk PBX voice channels
  • Game voice chat (legacy engines)
  • Low-bandwidth speech archival
  • Unix system sounds and notification alerts
  • Java application audio via javax.sound.sampled
  • Telephony and voice-over-IP (mu-law encoding)
  • Legacy Solaris and NeXT workstation audio
  • Scientific data acquisition on Unix platforms
Best For
  • Legacy VoIP system compatibility
  • Ultra-low bitrate speech encoding
  • Embedded systems with limited resources
  • Patent-free speech compression
  • Unix/Linux system audio integration
  • Java application development requiring audio playback
  • Telephony systems using mu-law or A-law encoding
  • Legacy Sun/NeXT system compatibility
  • Simple audio storage without metadata overhead
Version History
Introduced: 2002 (Jean-Marc Valin, Xiph.Org)
Current Version: Speex 1.2.1
Status: Deprecated — superseded by Opus
Evolution: Speex (2002) → stable (2008) → deprecated in favor of Opus (2012)
Introduced: ~1988 (Sun Microsystems)
Current Version: AU format specification (stable)
Status: Legacy, still supported in Java and Unix
Evolution: Sun Audio (~1988) → NeXT .snd adoption → Java javax.sound standard
Software Support
Media Players: VLC, foobar2000
VoIP: Asterisk, Opal (legacy)
Mobile: Limited native support
Web Browsers: Not supported (use Opus)
Libraries: libspeex, FFmpeg
Media Players: VLC, Audacity, ffplay, sox
DAWs: Audacity, Ardour (Linux DAWs)
Mobile: Limited — requires conversion for most devices
Web Browsers: Not natively supported
Development: Java (javax.sound), Python (sunau, wave modules)

Why Convert SPX to AU?

Converting SPX to AU produces audio files compatible with Unix workstations, Java applications, and Solaris systems. The AU format's simple structure — a compact header followed by raw audio data — makes it ideal for embedded systems, server-side audio processing, and Java's javax.sound framework. If your target platform is Unix-based or Java-dependent, AU provides native support without additional libraries or codecs.

SPX files offer excellent capabilities in their native ecosystem, but AU remains the standard audio format for Java development and many Unix/Linux applications. Java's javax.sound.sampled API reads and writes AU natively without any external dependencies, making it the simplest choice for Java audio applications. Converting your SPX audio to AU ensures zero-friction integration with Java sound pipelines.

The AU format supports multiple encoding modes including uncompressed PCM (for maximum quality), mu-law (for efficient telephony-grade audio), and A-law encoding. For server-side audio processing on Unix systems, AU's simple binary format is easy to parse programmatically without complex container libraries. This simplicity makes AU particularly valuable for automated audio processing pipelines and IoT audio systems.

Keep in mind that AU has limited metadata support and no album art capability. If your SPX files contain rich tags or embedded artwork, this information will not transfer to the AU format. For applications where metadata is important, consider maintaining your SPX originals alongside the AU conversions. The primary value of AU conversion lies in platform compatibility and format simplicity, not in metadata or feature richness.

Key Benefits of Converting SPX to AU:

  • Java Native: javax.sound.sampled reads AU without external libraries
  • Unix Standard: Native audio format for Sun, NeXT, and Linux systems
  • Simple Format: Easy to parse and process programmatically
  • Telephony Ready: Mu-law and A-law encoding for VoIP applications
  • Server-Side: Lightweight format for web servers and backend processing
  • Embedded Systems: Minimal overhead for resource-constrained devices
  • Legacy Compatibility: Required for older Unix applications and workflows

Practical Examples

Example 1: Java Application Sound Integration

Scenario: A Java developer needs to add audio feedback to an enterprise application. Their sound library is in SPX format, but Java's javax.sound.sampled API works best with AU files for cross-platform audio playback without additional dependencies.

Source: ui_sounds/ (12 SPX files, various alerts and notifications)
Conversion: SPX → AU (PCM 16-bit, 22.05 kHz, mono)
Result: 12 AU files ready for javax.sound integration

Workflow:
1. Convert SPX sound effects to AU format
2. Place AU files in Java resources directory
3. Load via AudioSystem.getAudioInputStream()
4. Play through Clip or SourceDataLine
5. Deploy with zero external audio dependencies

Example 2: Unix Server Audio Processing Pipeline

Scenario: A backend service on a Linux server processes audio uploads. The processing pipeline uses SoX and custom C tools that expect AU input format for their simple binary parsing routines.

Source: uploaded_audio.spx (user-uploaded audio file)
Conversion: SPX → AU (PCM 16-bit, 44.1 kHz)
Result: processed_audio.au (ready for pipeline)

Pipeline requirements met:
✓ Simple binary header parsed by custom C tools
✓ Raw PCM data accessible without complex container libraries
✓ Compatible with SoX command-line processing
✓ Consistent format for batch audio analysis
✓ Minimal overhead in server-side processing

Example 3: Embedded System Audio Deployment

Scenario: An IoT device running embedded Linux needs audio alerts and voice prompts. The firmware audio player supports AU format natively due to its simple structure and minimal parsing requirements.

Source: alert_sounds/ (8 SPX files, various device alerts)
Conversion: SPX → AU (mu-law, 8 kHz, mono)
Result: 8 AU files (compact, firmware-ready)

Embedded system benefits:
✓ Minimal header parsing code required
✓ Mu-law encoding reduces storage on flash memory
✓ No complex audio library dependencies
✓ Direct PCM or mu-law playback via audio hardware
✓ Reliable on resource-constrained embedded Linux

Frequently Asked Questions (FAQ)

Q: What is the AU format and why would I convert to it?

A: AU (Sun Audio) is a simple audio format from Sun Microsystems used on Unix workstations, in Java applications, and on Solaris systems. You would convert to AU primarily for Java application development (javax.sound supports AU natively), Unix server-side audio processing, embedded Linux systems, or legacy system compatibility. AU's simple structure makes it easy to parse without complex library dependencies.

Q: Will my SPX metadata transfer to the AU file?

A: No — the AU format has extremely limited metadata support. It includes only an optional free-form annotation field in the header. Tags like title, artist, album, cover art, and other metadata from your SPX files will not transfer to AU. If metadata preservation is important, keep your original SPX files and use AU copies only where the format is specifically required.

Q: What encoding should I choose for AU output — PCM or mu-law?

A: Choose PCM (pcm_s16be or pcm_s24be) for general-purpose audio at full quality — this stores uncompressed samples identical to WAV quality. Choose mu-law (pcm_mulaw) for telephony applications, voice prompts, or when you need compact 8-bit files. Mu-law is optimized for speech at 8 kHz and provides acceptable voice quality in very small files, but it is not suitable for music content.

Q: Can modern media players play AU files?

A: VLC, Audacity, FFplay, and SoX can all play AU files. However, mainstream players like Windows Media Player, Apple Music, and most mobile music apps do not natively support AU. This limited playback support is one reason AU conversion is typically done for specific technical requirements (Java, Unix, embedded) rather than for general listening purposes.

Q: Is AU the same as SND format?

A: Yes — AU and SND are essentially the same format. Sun Microsystems used the .au extension on their systems, while NeXT Computer used the .snd extension. Both share the same file structure: a magic number (0x2e736e64, which is ".snd" in ASCII), followed by data offset, data size, encoding type, sample rate, and channel count. The files are interchangeable regardless of extension.

Q: Why is AU format big-endian?

A: AU uses big-endian byte order because it was designed for Sun SPARC and Motorola 68000 processors, which are big-endian architectures. This was the natural byte order for Sun workstations and NeXT computers. On modern little-endian x86/ARM systems, audio processing libraries handle the byte swapping transparently. This is a historical artifact that doesn't affect audio quality.

Q: What sample rates and bit depths does AU support?

A: AU supports a wide range of sample rates (commonly 8 kHz, 11.025 kHz, 22.05 kHz, 44.1 kHz, and 48 kHz) and bit depths (8-bit mu-law, 8/16/24/32-bit PCM integer, and 32/64-bit floating point). For Java compatibility, 8 kHz or 22.05 kHz mono at 16-bit PCM is most commonly used. For high-quality audio, 44.1 kHz or 48 kHz at 16 or 24-bit PCM is recommended.

Q: How long does SPX to AU conversion take?

A: Conversion to AU is extremely fast — typically several times faster than real-time. The AU format's simple structure means encoding is essentially just writing a short header followed by PCM data. A 5-minute audio file converts to AU in under a second on modern hardware. The primary bottleneck, if any, is decoding the SPX source format, not the AU encoding.