AutoMixingService
AutoMixingService
As we build out the AudioStack we're interested in making it seamless for developers to produce high quality audio. So we're looking into methods to standardize and enhance the quality of audio.
We've recently launched based on over a years research into digital signal processing and machine learning an auto mixing service
What problem does this solve?
Our mastering service delivers audio content by mixing together speech, fx, music and other assets.
Our speech (voices) and music (sound templates) are very diverse in quality, frequency ranges and dynamics furthermore, we are constantly working on expanding the sources for these.
We wanted to improve and standardize (master) the quality of our mixes when:
- Our voices are from several providers and vary in tonalities, dynamics and frequency ranges.
- Music and sfx come at different loudnesses (RMS) and have diverse tonal qualities.
AMS analyses each component in each mix and applies an individualized mastering signal chain to enhance the output quality. These signal chains will be different based on the music, sfx and voice characteristics.
Fundamentally this is an out of the box solution that improves sound quality by applying an audio treatment parametrised to enhance each individual mix.
Code example
import audiostack
import os
from uuid import uuid4
audiostack.api_key = "APIKEY"
SCRIPT_TEXT = """
There was a time when sending Philippine Peso’s home was pure stress for Gloria, not anymore, it’s pure zen
"""
names = ["marek", "william", "bassel", "brenda"]
templates = ["sonic_convalescence_30"] #
presets = ["ams-test-voiceenhanced", "default"]
for template in templates:
for name in names:
script = audiostack.Content.Script.create(scriptText=SCRIPT_TEXT, scriptName="test")
for preset in presets:
try:
# Creates text to speech
speech = audiostack.Speech.TTS.create(
scriptItem=script,
voice=name,
speed=100,
)
production = audiostack.Production.Mix.create(
speechItem=speech,
soundTemplate=template,
masteringPreset=preset,
)
uuid = uuid4()
path = "signal_chain_tests"
if not os.path.exists(path):
os.makedirs(path)
production.download(fileName=f"{name}_{template}_{preset}_{uuid}_", path=path)
print(f"OK: {name}_{template}_{preset}.wav")
except Exception as e:
print(f"ERROR: {name} + {template} + {preset} failed!\n{e}")
continue
Updated 26 days ago