from mixtrain import AudioOverview
Use Audio for audio inputs and outputs. Mixtrain displays returned audio in a player, and you can download it locally for analysis.
Constructor
Audio(
url: str,
*,
content_type: str | None = None,
filename: str | None = None,
duration_seconds: float | None = None,
format: str | None = None,
)| Parameter | Type | Description |
|---|---|---|
url | str | Workspace path or URL (https://, gs://, s3://) |
content_type | str | None | MIME type |
filename | str | None | Original filename |
duration_seconds | float | None | Duration in seconds |
format | str | None | Format hint (mp3, wav) |
audio = Audio("clips/recording.mp3", duration_seconds=30.0, format="mp3")Properties
| Property | Type | Description |
|---|---|---|
url | str | Workspace path or remote URL |
content_type | str | None | MIME type |
filename | str | None | Original filename |
duration_seconds | float | None | Duration in seconds |
format | str | None | Format (mp3, wav) |
Methods
to_file()
Inherited from File. Downloads the audio and returns the local path. Cached across calls.
path = audio.to_file()to_numpy()
Load audio as a numpy array with sample rate.
audio.to_numpy() -> tuple[np.ndarray, int]Downloads the audio if needed and loads it with soundfile.
Returns: (samples, sample_rate) — audio samples as a numpy array and the sample rate as int.
samples, sample_rate = audio.to_numpy()
print(f"{len(samples)} samples at {sample_rate} Hz")
print(f"Duration: {len(samples) / sample_rate:.1f}s")Using Audio
You can use Audio in your models, datasets, workflows, and routines.
As output
from mixtrain import MixModel
from mixtrain import Audio
class AudioGenerator(MixModel):
def run(self, inputs=None):
audio_url = self._generate(inputs["prompt"])
return {
"result": Audio(
url=audio_url,
duration_seconds=15.0,
format="wav"
)
}As input
from mixtrain import MixModel, Audio
class AudioAnalyzer(MixModel):
def run(self, audio: Audio):
samples, sr = audio.to_numpy()
# ... analyze audio
return {"duration": len(samples) / sr}From model result
from mixtrain import Model
model = Model("music-generator")
result = model.run({"prompt": "Lo-fi beat"})
print(result.audio.url)
print(f"Duration: {result.audio.duration_seconds}s")Storing Audio
Use Audio.from_file() for a local audio file, then call save() to persist it to workspace storage:
audio = Audio.from_file("clip.wav", duration_seconds=30.0)
saved_audio = audio.save("clips/clip.wav")