> ## Documentation Index
> Fetch the complete documentation index at: https://site.aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# AssemblyAI's Success with Aspect Workflows

> AssemblyAI, a leader in AI-driven speech-to-text, cut CI compute costs 10x and decreased developer wait time by 60% with a Bazel-based Python monorepo and self-hosted Aspect Workflows.

export const MarketingPage = () => <div className="marketing-page-marker" style={{
  display: "none"
}} />;

export const Section = ({children, className = "", gray = false, dark = false, id}) => <section id={id} className={`w-full flex justify-center px-4 py-16 md:py-24 ${gray ? "bg-gray-50 dark:bg-zinc-900" : dark ? "bg-zinc-900 dark:bg-zinc-950" : ""} ${className}`}>
    <div className="w-full" style={{
  maxWidth: "1140px"
}}>
      {children}
    </div>
  </section>;

<MarketingPage />

<Section>
  <div className="max-w-3xl mx-auto">
    <div className="case-study-logo">
      <img src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/customers/assemblyai-logo.svg?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=6f39ce59630e95c3295965094eba5632" alt="AssemblyAI" noZoom width="187" height="33" data-path="images/marketing/customers/assemblyai-logo.svg" />
    </div>

    <h1 className="mt-6 text-3xl md:text-4xl font-semibold text-zinc-900 dark:text-white tracking-tight">
      AssemblyAI's Success with Aspect Workflows
    </h1>

    <div className="case-study-hero mt-10">
      <img src="https://mintcdn.com/aspectbuild/x1L7Iep716jCyJVo/images/marketing/case-studies/assemblyai.png?fit=max&auto=format&n=x1L7Iep716jCyJVo&q=85&s=6d03057ca2ad63bb6dc5cfe21d9e8b71" alt="" noZoom width="1080" height="664" data-path="images/marketing/case-studies/assemblyai.png" />
    </div>

    <div className="mt-10 grid grid-cols-2 md:grid-cols-2 gap-6 text-center">
      <div>
        <p className="text-3xl font-semibold text-blue-600 dark:text-blue-400">10x</p>
        <p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Reduced compute costs</p>
      </div>

      <div>
        <p className="text-3xl font-semibold text-blue-600 dark:text-blue-400">60%</p>
        <p className="mt-1 text-sm text-zinc-500 dark:text-zinc-400">Decreased wait time</p>
      </div>
    </div>

    <div className="mt-12 space-y-5 text-zinc-600 dark:text-zinc-300 leading-relaxed">
      <p>
        AssemblyAI provides advanced AI-driven speech-to-text services. They offer tools for audio
        transcription, sentiment analysis, topic detection, and other leading capabilities. They are known for
        high accuracy, scalability, and easy API integrations.
      </p>

      <p>
        AssemblyAI enables businesses to rapidly build voice-based applications. Needless to say, keeping their
        builds fast and their engineers moving is critical for providing world-class products to their
        customers.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Challenges:</h2>

      <p>
        AssemblyAI's Bazel story began in early 2022, when they were using over 250 source repositories, many
        of which were branched from the history of others. The resulting forks diverged, preventing
        improvements or bugfixes from being applied consistently. New and old engineers alike struggled to find
        the correct source code. Releases often took over a week and rollbacks were commonplace. Even versions
        of libraries such as ffmpeg would vary between a researcher's machine where model training occurred and
        the production deployment, resulting in subtle transcoding bugs.
      </p>

      <p>
        A monorepo existed at this time, but it was not consistent. Top-level folders had their own tooling
        choices. Dependencies and common approaches were not shared between them. AssemblyAI's team evaluated
        Bazel, Pants, and Buck2. The Head of Technology chose to start a revived monorepo effort with Bazel
        because of its high level of community support and his familiarity with the core team.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Solutions:</h2>

      <p>
        AssemblyAI contacted Aspect in December 2022. They were seeking help with executing py\_binary via
        gunicorn in a Python docker image. During a brief consulting engagement, Aspect quickly resolved
        AssemblyAI's issue and then migrated the company to a new monorepo. Backed by industry-standard SLAs,
        we supported AssemblyAI engineers in a shared Slack channel.
      </p>

      <p>
        AssemblyAI became interested in our self-hosted Workflows product to speed up their Continuous
        Integration. They were focused on support for Github Actions and custom security groups along with
        optimizing AI model packaging, training, and inference workflows. AssemblyAI's trial began in April
        2023\.
      </p>

      <p>The trial was evaluated on the following criteria:</p>

      <ul className="list-disc pl-6 space-y-2">
        <li>Availability and scalability of Aspect's CI runners</li>
        <li>High action cache hit rate and low analysis cache discard rate (based on provided Grafana dashboards)</li>
        <li>Cost effectiveness</li>
        <li>Selectively stamping and delivering only changed artifacts</li>
        <li>Auditable back-references from artifact to the monorepo state where it was produced</li>
        <li>Alerting on-call engineers to CI breakage via our "buildcop" service</li>
        <li>Providing enough information to enable Continuous Deployment</li>
      </ul>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Results:</h2>

      <p>
        Deployments sped up with fewer rollbacks, new engineers onboarded faster, and AI researchers and
        engineers improved collaboration by working together in a shared repository.
      </p>

      <p>
        AssemblyAI saw significant improvements in build consistency. Optimized dependencies led to fast and
        cost-effective AI training and inference cycles. Developer CI wait time decreased by 60%. The cost to
        operate CI plummeted; the team estimates a 10x reduction. During one week in particular, AssemblyAI's
        legacy runners cost \$600 while the self-hosted Aspect Workflows runners cost \$5.
      </p>

      <h2 className="mt-10 text-2xl font-semibold text-zinc-900 dark:text-white">Why It Worked:</h2>

      <p>
        In a machine learning environment, it is critical for dependencies to be consistent between researchers
        conducting training and production systems performing inference. A Bazel-based Python monorepo with
        self-hosted Aspect Workflows ensures that AssemblyAI reliably manages dependency versions, leading to
        better performance and reduced overhead.
      </p>

      <p>
        However, our proudest achievement was receiving an email from a former AssemblyAI engineer asking us to
        set up Workflows at his new startup!
      </p>
    </div>

    <div className="mt-12">
      <a href="https://cdn.aspect.build/case-studies/AssemblyAI.pdf" target="_blank" rel="noopener noreferrer" className="inline-flex items-center px-6 py-3 rounded-lg bg-blue-600 text-white font-semibold hover:bg-blue-700 transition shadow-sm">
        Download PDF →
      </a>
    </div>
  </div>
</Section>
