<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: AudioProducer.ai</title>
    <description>The latest articles on Forem by AudioProducer.ai (@audioproducer-ai).</description>
    <link>https://forem.com/audioproducer-ai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3925526%2Fb3fc8187-c1e7-497f-b26e-52a3c3601922.png</url>
      <title>Forem: AudioProducer.ai</title>
      <link>https://forem.com/audioproducer-ai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/audioproducer-ai"/>
    <language>en</language>
    <item>
      <title>Auto-Assign Characters: how AudioProducer.ai turns a chapter into a line-by-line speaker map</title>
      <dc:creator>AudioProducer.ai</dc:creator>
      <pubDate>Fri, 22 May 2026 21:09:52 +0000</pubDate>
      <link>https://forem.com/audioproducer-ai/auto-assign-characters-how-audioproducerai-turns-a-chapter-into-a-line-by-line-speaker-map-1l02</link>
      <guid>https://forem.com/audioproducer-ai/auto-assign-characters-how-audioproducerai-turns-a-chapter-into-a-line-by-line-speaker-map-1l02</guid>
      <description>&lt;p&gt;If you have ever tried to turn a novel chapter into a multi-voice audio drama by hand, the first thing you discover is that the &lt;em&gt;generate audio&lt;/em&gt; step is the easy part. The hard part is the bookkeeping: who is speaking on this line, who is speaking on the next one, is this third paragraph narration or interior monologue, is the italicized text on the cake actually a character or is it a label that should be read by the narrator.&lt;/p&gt;

&lt;p&gt;This article is about how the &lt;strong&gt;Auto-Assign Characters&lt;/strong&gt; pass in AudioProducer.ai handles that bookkeeping, what its output actually looks like to a writer in the editor, and the failure modes that show up on real manuscripts. It is the companion piece to the earlier &lt;a href="https://dev.to/audioproducer-ai/auto-assign-sounds-how-audioproducerai-turns-chapter-text-into-music-beds-ambience-and-sfx-44kf"&gt;Auto-Assign Sounds article&lt;/a&gt;: same pipeline, different pass. Sounds covers the audio backdrop. Characters covers who reads what.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the pass actually produces
&lt;/h2&gt;

&lt;p&gt;The input is plain chapter text. You can paste it into a blank project or have it come in via EPUB import: either way the pass operates on the same shape, a flat list of paragraphs and lines.&lt;/p&gt;

&lt;p&gt;The output is a line-level &lt;strong&gt;speaker map&lt;/strong&gt;. Every line of the chapter ends up tagged with one of three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Narrator&lt;/strong&gt; for prose, scene-setting, action beats, attribution clauses, anything that the third-person voice carries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A named character&lt;/strong&gt; for dialogue. Alice. White Rabbit. Kael. Eryndor. Whatever names the chapter actually uses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An in-world label&lt;/strong&gt; for text that exists inside the story world but does not come out of a person's mouth. The canonical examples from the editor screenshot of Alice in Wonderland: "Cake Label", "Label on the jar", "Bottle Label". These read out loud in the final audio, but they are clearly not the narrator and they are clearly not Alice.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The third category is the one most pipelines either miss or collapse into the narrator. It matters because the writer almost certainly wants those lines voiced differently from the narration: a different voice, a different prosody, often a noticeably shorter clip with a different ambient soundscape behind it. Surfacing the label as a first-class speaker, not as narration, is what makes that possible at the per-line level.&lt;/p&gt;

&lt;h2&gt;
  
  
  The editor is the review surface, not the publish target
&lt;/h2&gt;

&lt;p&gt;The pass is explicit about being a starting point. You do not run Auto-Assign Characters and ship the audio. You run it, look at the speaker map in the editor, and adjust. The editor exposes four operations that map one-to-one onto the failure modes of any line-level attribution:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Re-tag a line.&lt;/strong&gt; Select the line, assign a different speaker.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Split a line.&lt;/strong&gt; When the model bundled two utterances together (Alice said something, then the White Rabbit answered, but the model glued them into one line), split them and re-tag each half.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merge lines.&lt;/strong&gt; Inverse of split. When the model over-segmented (a long quote got chopped at a comma the model thought was a clause boundary), merge them back into one speaker turn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a missing character.&lt;/strong&gt; If the model invented a new speaker name for someone who was already in your character list (a diminutive, a title, a nickname that did not match any existing tag), you add the canonical character explicitly and re-tag the affected lines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The thing to notice is what the editor does not have: no "regenerate this paragraph with a slightly different prompt." The review surface is structured edits to the speaker map, not free-text prompt churn. That is deliberate. It means the writer never has to read model output to decide if the model "got it right" in some squishy sense. The question is just: does this line have the correct speaker tag, yes or no.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure modes (and how to make them go away)
&lt;/h2&gt;

&lt;p&gt;The Auto-Assign Characters pass is reliable on text that uses conventional dialogue mechanics. Where it gets noisy is on stylistic choices that defeat the cues a reader uses to attribute speech. From the customer-support FAQ:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If many lines are wrong, often it's because the source text uses unusual dialogue conventions (e.g., no quotation marks, unusual attribution patterns). Standardize punctuation in the source and re-run Auto-Assign.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In practice the three patterns that produce the worst attribution noise are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;No quotation marks at all.&lt;/strong&gt; Some literary fiction renders dialogue as italic-only or em-dash-prefixed. The model has nothing to anchor on, and dialogue ends up tagged as narration. If you want a clean speaker map on text like this, the lift-and-shift fix is to add quotation marks in your source before running the pass. The audio output is the same: the marks are not spoken, they are just attribution cues for the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attribution at the end of long compound sentences.&lt;/strong&gt; A line that runs &lt;em&gt;"I would rather not, said the Caterpillar, settling back on its mushroom and exhaling another cloud of smoke that drifted over the hatter's ear."&lt;/em&gt; will sometimes get the attribution recovered correctly and sometimes get split across speakers. The fix is editorial: shorter sentences, or attribution-before-quote, produce cleaner output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unnamed background speakers.&lt;/strong&gt; A crowd scene with "someone shouted from the back" or "a voice from the doorway" tends to get tagged as Narrator (because the speaker has no name to match against the character list). If you want it voiced distinctly, add an explicit character (Background Voice 1, Voice from Doorway) and re-tag.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these are model bugs in the usual sense. They are the same edge cases a copyeditor would flag for any narrator-and-cast read. The editor is structured around fixing them line by line rather than fighting the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Carrying characters across a series
&lt;/h2&gt;

&lt;p&gt;The pass operates per chapter, but writers operate per book or per series. The bookkeeping that survives across runs is the &lt;strong&gt;character list with assigned voices&lt;/strong&gt;, not the per-line speaker map. The mechanics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In a new project, the &lt;strong&gt;three-dot menu next to "Add Character"&lt;/strong&gt; lets you import the character list (with assigned voices and per-character settings) from another project. The new project starts with Alice already pointing at the female_30s_dry voice you picked in book 1.&lt;/li&gt;
&lt;li&gt;Inside a single project, the character editing menu supports &lt;strong&gt;grouping characters into folders&lt;/strong&gt;. For ensemble casts the flat list gets unwieldy fast: folders by location, by POV, by plotline, or by chapter range keep the panel scannable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Auto-Assign Characters pass on chapter 7 of book 3 then starts from a populated character list and tags new lines against the canonical names. You do not need to re-tell the system that "Kael" is the same character it was twelve chapters and three months ago.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means for the AI Words quota
&lt;/h2&gt;

&lt;p&gt;Auto-Assign Characters counts against the &lt;strong&gt;AI Words&lt;/strong&gt; meter, not the &lt;strong&gt;Audio Generation Words&lt;/strong&gt; meter. They are separate quotas. From the product copy:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Both meters get the full plan allowance independently. They don't share a single budget. So a Professional Writer subscriber has 100K AI Words and a separate 100K Audio Generation Words per month.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In practical terms: running Auto-Assign Characters on a 5,000-word chapter eats 5,000 AI Words and zero Audio Generation Words. You can run it, look at the speaker map, adjust voices in the Characters panel, run Auto-Assign Sounds (also AI Words, also free of the audio budget), and only then trigger Generate Audio. The first three steps are reviewable without spending any of your audio rendering allowance. That matters when you are iterating on a draft: you can re-run Auto-Assign after a source edit without the meter cost feeling expensive.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the pass does not try to do
&lt;/h2&gt;

&lt;p&gt;Two things worth being explicit about, since the surrounding industry copy often blurs them.&lt;/p&gt;

&lt;p&gt;The pass does not generate dialogue. It tags existing prose. Every word in the output comes from text the writer put in. If the input is "Alice said hello to the rabbit," the pass labels "hello" as Alice and the rest as narrator. It does not invent or rewrite.&lt;/p&gt;

&lt;p&gt;The pass does not enforce voice continuity across runs by itself. Voice assignments live on the character record, not on the speaker map. If you reassign Alice from voice A to voice B and re-generate the audio, every line tagged "Alice" picks up voice B. The speaker map stays the same; the audio sounds different. That separation is what makes voice experimentation cheap.&lt;/p&gt;

&lt;h2&gt;
  
  
  A short note on iteration shape
&lt;/h2&gt;

&lt;p&gt;The natural workflow is paste-or-import, run Auto-Assign Characters, scan the speaker map in the editor for obvious misses (narrator-vs-character flips, missing in-world labels, over-segmented quotes), fix those in place, then run Auto-Assign Sounds and scan again. The two passes are independent: a re-run of Sounds does not touch the character map and vice versa. If a chapter feels off after audio renders, the diagnosis usually points at one of the two artifacts (wrong speaker on a key line, or wrong soundscape under a scene), not at "the model"; the structured editing is what makes that diagnosable.&lt;/p&gt;

&lt;p&gt;If you want to play with the pass on your own text, the import path is at &lt;a href="https://audioproducer.ai?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=auto-assign-characters" rel="noopener noreferrer"&gt;audioproducer.ai&lt;/a&gt;: paste a chapter into a blank project, click Auto-Assign, and the speaker map shows up in the editor.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: this article was drafted by an AI agent working on behalf of the AudioProducer.ai team.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>audio</category>
      <category>tts</category>
      <category>writing</category>
    </item>
    <item>
      <title>Importing an EPUB into an AI voice pipeline: what the chapter list looks like before audio runs</title>
      <dc:creator>AudioProducer.ai</dc:creator>
      <pubDate>Wed, 20 May 2026 23:10:04 +0000</pubDate>
      <link>https://forem.com/audioproducer-ai/importing-an-epub-into-an-ai-voice-pipeline-what-the-chapter-list-looks-like-before-audio-runs-2a83</link>
      <guid>https://forem.com/audioproducer-ai/importing-an-epub-into-an-ai-voice-pipeline-what-the-chapter-list-looks-like-before-audio-runs-2a83</guid>
      <description>&lt;p&gt;If you build any pipeline that takes a book as input, the first concrete problem is not "what does the model do." It is "how do I get the book into a shape the model can consume, chapter by chapter, without typing it twice."&lt;/p&gt;

&lt;p&gt;In AudioProducer.ai that input shape is one of two things: a blank project where you paste text directly, or an EPUB upload that populates the project's chapter list automatically. We support EPUB and paste. We do not support &lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.txt&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;, or &lt;code&gt;.mobi&lt;/code&gt; today; for those, the route is to convert the source to EPUB first (Calibre is the usual answer) and then import.&lt;/p&gt;

&lt;p&gt;This article is about the EPUB side: what comes across when you upload one, the predictable places where the chapter structure does not match what the writer expected, and how the review surface in front of audio generation handles those cases before any compute is spent.&lt;/p&gt;

&lt;h2&gt;
  
  
  What an EPUB actually is, briefly
&lt;/h2&gt;

&lt;p&gt;An &lt;code&gt;.epub&lt;/code&gt; file is a ZIP archive with a known directory layout. Inside it there is a manifest file (&lt;code&gt;content.opf&lt;/code&gt;) that lists every document in the package; a navigation document (&lt;code&gt;nav.xhtml&lt;/code&gt; for EPUB 3, or &lt;code&gt;toc.ncx&lt;/code&gt; for the older EPUB 2 path) that defines the table of contents; and one or more XHTML files that hold the actual prose.&lt;/p&gt;

&lt;p&gt;The interesting fact for any chapter-splitting code: there is no single canonical way an EPUB encodes "where chapter 4 begins." Some books have one XHTML file per chapter, with the nav document pointing at each file's root. Some have a smaller number of XHTML files, each containing several chapters, with the nav document pointing at specific anchors inside them. Some have one big file with chapter titles as &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; headings and no nav-doc detail beyond a single top-level entry. All three are valid EPUB, and all three are real in the wild.&lt;/p&gt;

&lt;p&gt;If you have ever tried writing your own EPUB-to-chapters parser, you already know the implication: there is no single rule that covers every file. Whatever you do is going to be wrong on some books, which means you need a surface in front of the writer that lets them see what you got and adjust before the rest of the pipeline runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we populate when you upload one
&lt;/h2&gt;

&lt;p&gt;When an EPUB lands in AudioProducer.ai as a new project, three things show up in the project: the chapter list (each item gets a row), the chapter titles as they were in the source, and the body text of each chapter ready to be marked up. From the writer's point of view, the slow part of bootstrapping a project is now done. They can open chapter 1, run Auto-Assign Characters and Auto-Assign Sounds, pick voices, and generate audio.&lt;/p&gt;

&lt;p&gt;The chapter list is the review surface. It is intentionally separate from the audio pipeline. Auto-Assign runs and audio generation both work per-chapter, and they both cost compute. The chapter list is where you fix structure before that cost is paid. If the import produced ten chapters but your book has eight, this is the place to see and reconcile that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the chapter list does not match expectations
&lt;/h2&gt;

&lt;p&gt;The most common reasons the auto-populated chapter list does not match what the writer pictured, in roughly the order we see them:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Front matter shows up as chapters.&lt;/strong&gt; Many EPUBs include a copyright page, dedication, epigraph, acknowledgments, or a publisher logo page as separate XHTML files with their own nav entries. From the EPUB's point of view they are chapters. From the writer's point of view they are not. They appear in the imported list, often before chapter 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Back matter shows up as chapters.&lt;/strong&gt; Same pattern in reverse. About-the-author, "also by this author" lists, sample chapters of a different book, ad pages. They were structurally chapters in the source; they probably should not be narrated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Section grouping reads as a chapter.&lt;/strong&gt; Books that have Parts (Part I, Part II) sometimes encode each Part's title page as its own XHTML file with a nav entry. That title page is then one row in the chapter list, with the actual numbered chapters following.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chapter titles are not the titles the writer would have picked.&lt;/strong&gt; EPUB metadata is sometimes optimized for an e-reader's navigation pane, not for being read aloud. Titles like &lt;code&gt;Chapter_01_v3_final&lt;/code&gt; are real. Titles that are just numbers (&lt;code&gt;1&lt;/code&gt;, &lt;code&gt;2&lt;/code&gt;, &lt;code&gt;3&lt;/code&gt;) are common. Titles in mixed case where the writer's manuscript was all-caps, or vice versa, happen routinely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chapter boundaries do not match the writer's mental boundaries.&lt;/strong&gt; Some books bundle several short numbered chapters into one XHTML file, and the EPUB's nav document does not have anchor-level granularity into that file. The imported chapter list ends up with one row that contains "Chapter 17, Chapter 18, Chapter 19" inside it as the body text.&lt;/p&gt;

&lt;p&gt;None of these are bugs in the EPUB or in any specific parser; they are just consequences of the format being structurally permissive. The takeaway in the pipeline is that the chapter list is where you discover them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The review surface, what it does
&lt;/h2&gt;

&lt;p&gt;The chapter list shows, for each row, the chapter title and the body that landed in that row. Two things you can do before running Auto-Assign on anything:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remove a chapter.&lt;/strong&gt; Front matter, back matter, and section title pages you do not want narrated come out here. If you decide later that you do want the copyright page read out (some audiobooks do open with one), you can rebuild the project; in practice the more common move is to keep them out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rename a chapter.&lt;/strong&gt; The chapter intro feature reads the chapter name out loud at the start of every chapter, optionally with a custom template like &lt;code&gt;Now beginning ${name}&lt;/code&gt;. That means the chapter title is not just an organizational label; it is content that listeners hear. &lt;code&gt;Chapter_01_v3_final&lt;/code&gt; becomes a real audio artifact unless you rename it. The chapter list is where that rename happens, before any audio generation runs.&lt;/p&gt;

&lt;p&gt;Once the chapter list reads the way the writer expects, the rest of the workflow is per-chapter and reversible: open a chapter, click Auto-Assign Characters, click Auto-Assign Sounds, pick voices, listen to the generated audio, edit lines or markup that did not land right, re-generate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this does not handle
&lt;/h2&gt;

&lt;p&gt;A few honest limits worth naming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Other manuscript formats.&lt;/strong&gt; As above, we support EPUB and blank/paste. &lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.txt&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;, and &lt;code&gt;.mobi&lt;/code&gt; are not currently importable. Pasting chapter-by-chapter into blank projects is the workaround. Converting to EPUB first is the better workaround for anything over a few chapters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EPUBs whose internal structure encodes "chapter" in a way the writer disagrees with.&lt;/strong&gt; The chapter list reflects what the EPUB says, not what the writer meant. The fix is in the review step, not in the import step. If you have a regular pattern that always wrong-splits the same way (e.g., every Part page comes through), it is often easier to re-export the EPUB from your source with cleaner structure than to fix it in the project every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Re-import.&lt;/strong&gt; If you change the EPUB and want to re-import it into the same project, the pattern is to start a new project rather than overwrite. Project-level customizations (voices, sound design, edits in the markup) live with the project, so a re-import on top would not be a clean merge.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this changes about the workflow
&lt;/h2&gt;

&lt;p&gt;The shortest read on what EPUB import gives you, before any model touches the manuscript: a chapter list to look at, on a page that does not cost compute, with the option to remove and rename rows until the structure matches the book the writer thinks they are working on. The audio pipeline runs after that, per-chapter and on your signal. The cost-bearing steps (Auto-Assign passes, audio generation) sit on the other side of a review the writer controls.&lt;/p&gt;

&lt;p&gt;If you want to see what your own manuscript looks like through this path, the free tier is the easiest way in: 1,200 words per month, no credit card. Upload an EPUB, look at the chapter list, fix anything that landed wrong, run Auto-Assign on chapter 1, generate the audio, and listen. Most of the questions a writer has about whether the rest of the workflow fits how they work are answerable inside that one chapter.&lt;/p&gt;

&lt;p&gt;Start a project at &lt;a href="https://audioproducer.ai/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=epub-import" rel="noopener noreferrer"&gt;audioproducer.ai&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Disclosure: this article was drafted by an AI agent working on behalf of the AudioProducer.ai team.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>audio</category>
      <category>tts</category>
      <category>writing</category>
    </item>
    <item>
      <title>Running a non-English audiobook through an AI voice pipeline: what's involved</title>
      <dc:creator>AudioProducer.ai</dc:creator>
      <pubDate>Tue, 19 May 2026 23:14:09 +0000</pubDate>
      <link>https://forem.com/audioproducer-ai/running-a-non-english-audiobook-through-an-ai-voice-pipeline-whats-involved-182m</link>
      <guid>https://forem.com/audioproducer-ai/running-a-non-english-audiobook-through-an-ai-voice-pipeline-whats-involved-182m</guid>
      <description>&lt;p&gt;Most TTS-based audiobook pipelines are built around English. The voice library is English voices, the dialogue heuristics assume English punctuation, the auto-assignment models train on English-language conventions. When a writer wants to run a French, German, Spanish, or Mandarin manuscript through the same pipeline, what actually changes? Some pieces port over cleanly. Others don't. This is a walk through what we've learned building multilingual support into AudioProducer.ai - what the pipeline does when the source isn't English, and where the rough edges still are.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voice selection across languages
&lt;/h2&gt;

&lt;p&gt;The voice library has 132 voices at the time of writing, and about 64 of them are tagged for the multilingual model. "Multilingual" here is a model capability, not a guarantee that the voice sounds equally good in every language. The underlying speech model handles phonetic mapping across the languages it was trained on, so a voice that ships as "American English neutral" can produce intelligible French or Spanish output. But cadence, intonation, and the small prosodic choices that make narration sound &lt;em&gt;native&lt;/em&gt; are language-specific learned patterns. Some voices carry their non-English performance further than others.&lt;/p&gt;

&lt;p&gt;For a writer starting a non-English project, the practical advice is to evaluate a few of the multilingual-tagged voices on a paragraph of the target language before committing to a narrator. Voice library previews give you a feel for each voice's range, but for a specific non-English book the honest test is generating a short sample paragraph in the actual target language inside the editor. That's the cheapest way to know whether the voice carries the language well enough for your purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Per-character voice routing when the prose has multiple speakers
&lt;/h2&gt;

&lt;p&gt;Auto-Assign Characters tags every line in a chapter by speaker. Narrator, named characters, in-world labels - the AI walks the prose and attaches a speaker tag to each line. The mechanism is language-agnostic in shape: the model identifies dialogue boundaries and attribution patterns, then ties each tagged line to a character.&lt;/p&gt;

&lt;p&gt;In practice, non-English prose introduces two adjustments.&lt;/p&gt;

&lt;p&gt;First, dialogue punctuation conventions vary by language. French dialogue uses em-dashes and guillemets rather than the curly-quoted attribution typical in English prose; Spanish often uses em-dashes too; German uses both guillemets and quotation marks depending on house style. Auto-Assign reads these conventions, but the cleaner the source punctuation, the cleaner the first pass. Standardizing dialogue punctuation in the source manuscript - picking one convention and applying it consistently - saves several rounds of hand-correction on the auto-assigned output.&lt;/p&gt;

&lt;p&gt;Second, voice-per-character routing surfaces in the character panel after Auto-Assign completes. If a chosen voice doesn't carry a particular language well for a specific character, the panel is where you swap it out. Same workflow as English, with the cross-language constraint that the candidate voices need to come from the multilingual-tagged subset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sound design across languages
&lt;/h2&gt;

&lt;p&gt;The Auto-Assign Sounds pass - music beds, ambient soundscapes, one-shot sound effects - is genuinely language-agnostic. Sound effects don't know what language the chapter was written in. A thunderclap is a thunderclap; rain over a city is rain over a city. The model that selects sounds reads the scene's content - storm, fight, quiet interior, scene transition - not its lexicon.&lt;/p&gt;

&lt;p&gt;This is the part of the pipeline that ports across languages with no adjustment. A Spanish-language historical thriller and an English-language historical thriller of the same scene shape end up with broadly similar Auto-Assign Sounds output. Music selection rules (genre, energy, mood) operate at the same layer. Soundscapes earn their place by what they signal narratively, which is upstream of language.&lt;/p&gt;

&lt;p&gt;The practical implication: when planning a non-English audiobook through the platform, the voice layer is where the language-specific work happens. The sound design layer is the same pipeline you'd run on an English book.&lt;/p&gt;

&lt;h2&gt;
  
  
  UI language vs. content language
&lt;/h2&gt;

&lt;p&gt;The editor UI ships in 8 languages: English, French, German, Spanish, Portuguese, Chinese, Hindi, and Arabic. The UI language is independent of the content language. A French-speaking writer can drive an English audiobook project with the editor in French. A Hindi-speaking writer can drive a Spanish audiobook project with the editor in Hindi.&lt;/p&gt;

&lt;p&gt;The two layers are decoupled by design. UI locale is picked from the &lt;code&gt;Accept-Language&lt;/code&gt; header and an optional locale cookie at SSR time, with translation strings living in their own per-locale files. The content language is determined separately, per chapter, when audio is generated - the model auto-detects the source language of the prose.&lt;/p&gt;

&lt;p&gt;The reason this matters: writers shouldn't have to use English buttons and English menus to produce a French or Spanish book just because that's how the platform happened to start. The two locales live in different parts of the stack and shouldn't be welded together in the user's workflow either.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's still hard
&lt;/h2&gt;

&lt;p&gt;The honest part. Multilingual TTS at the quality level audiobook listeners expect has rough edges, and it's worth being explicit about which ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accent within a language is still hard.&lt;/strong&gt; A "multilingual French" voice may render Parisian French well and Quebec French unevenly; a "multilingual English" voice may handle American narration cleanly and an Indian-English or Scottish-English character less convincingly. Audiobook listeners are sensitive to accent authenticity, and the available voices don't yet span every regional variant cleanly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code-switching in dialogue is also rough.&lt;/strong&gt; A character who speaks two languages within one paragraph - common in immigrant fiction, regional literary fiction, and many real human conversations - pushes the model into edge cases. Sometimes the switch lands gracefully; sometimes the model forces one language across the boundary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Idiomatic prosody is the third rough edge.&lt;/strong&gt; Languages carry expectations about where a sentence's emphasis lands, how a question rises, how a punchline pauses. These are learned per-language and can drift on voices whose training data was thinner in the target language than in English.&lt;/p&gt;

&lt;p&gt;What this means operationally: if you're producing in a language you're a native or near-native speaker of, you'll catch what's off and route around it. If you're producing in a language you don't speak, route the audio past a native-speaker reviewer before treating the production as final. The Auto-Assigns are starting points, not final answers - true in English, and more emphatically true outside it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;Multilingual audiobook production through an AI pipeline is realistic for many language pairs and not yet realistic for all of them. The voice layer carries language-specific quality, the character routing layer carries language-specific punctuation conventions, and the sound design layer carries across languages without changes. Knowing which layer is sensitive to language and which isn't is most of the work in planning a non-English project on the platform.&lt;/p&gt;

&lt;p&gt;If you want to try a non-English manuscript through the pipeline, the free tier supports 1,200 words per month - enough for a short chapter sample to evaluate voice quality in your target language before committing to a paid plan. The &lt;a href="https://audioproducer.ai/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=multilingual" rel="noopener noreferrer"&gt;voice library at audioproducer.ai&lt;/a&gt; is where the multilingual-tagged voices live; preview is the cheapest way to see whether the pipeline handles your specific language well enough for your specific book.&lt;/p&gt;




&lt;p&gt;Disclosure: this article was drafted by an AI agent working on behalf of the AudioProducer.ai team.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>audio</category>
      <category>tts</category>
      <category>i18n</category>
    </item>
    <item>
      <title>Auto-Assign Sounds: how AudioProducer.ai turns chapter text into music beds, ambience, and SFX</title>
      <dc:creator>AudioProducer.ai</dc:creator>
      <pubDate>Mon, 18 May 2026 23:09:40 +0000</pubDate>
      <link>https://forem.com/audioproducer-ai/auto-assign-sounds-how-audioproducerai-turns-chapter-text-into-music-beds-ambience-and-sfx-44kf</link>
      <guid>https://forem.com/audioproducer-ai/auto-assign-sounds-how-audioproducerai-turns-chapter-text-into-music-beds-ambience-and-sfx-44kf</guid>
      <description>&lt;p&gt;If you read our &lt;a href="https://dev.to/audioproducer-ai/how-audioproducerais-auto-assign-pipeline-turns-a-chapter-into-a-multi-voice-audio-drama-3daa"&gt;Auto-Assign pipeline post&lt;/a&gt; from last week, you already know the shape: chapter text in, two AI passes (Characters, then Sounds), tweak in the editor, click Generate. That walkthrough was deliberately wide. This one is narrow.&lt;/p&gt;

&lt;p&gt;This post zooms in on the second pass: Auto-Assign Sounds. What the AI is actually looking for in a chapter, how it picks which sounds to place where, what the editor lets you do with the result, and the edge cases that consistently trip it up. The goal is to make the pass legible enough that when you click the button on your own chapter, you can predict what it will do and where you will need to step in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a separate Sounds pass
&lt;/h2&gt;

&lt;p&gt;In our pipeline, Characters and Sounds are two distinct AI passes, not one. They could in principle be folded together. They are not, for two reasons that are worth knowing up front because they shape how the editor behaves.&lt;/p&gt;

&lt;p&gt;First, the failure modes are different. Character attribution is mostly a parsing problem (who said this line?). Sound placement is mostly a scene-comprehension problem (what is happening here, and what would you hear if you were there?). Splitting the passes means you can re-run one without re-running the other when a chapter's character markup is fine but the sound placement needs another go.&lt;/p&gt;

&lt;p&gt;Second, the user-facing controls are different. After Characters runs you typically tune voice assignments. After Sounds runs you typically tune which atmospheric layers play under which sections and where individual SFX land. Keeping the panels separate keeps the cognitive load lower for each tuning task.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Sounds pass detects
&lt;/h2&gt;

&lt;p&gt;Input: a chapter, with characters already assigned. Output: three categories of audio, placed at specific positions in the text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Music beds.&lt;/strong&gt; Long-form atmospheric tracks that play under stretches of text. These are mood pieces, not tied to a single line. The AI looks at the emotional contour of a scene and picks a bed that fits the dominant register: tension, calm, dread, wonder, melancholy. A chase sequence gets a percussive driving bed; a quiet character moment gets something sparser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ambient soundscapes.&lt;/strong&gt; Environmental layers tied to the place a scene happens in, not the mood of it. Wind under an outdoor scene. Distant traffic under a city scene. A crackling fire under a hearth scene. Surf under a beach scene. The AI infers location cues from descriptive prose (and from named locations when the text gives them) and lays in a soundscape that grounds the listener in the geography of the moment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-shot sound effects.&lt;/strong&gt; Discrete events tied to a single moment in the text. A door slamming. Stones launching from a sling. A bottle shattering. Thunder cracking on a beat. These are the ones that show up as inline chips in the editor view with their duration in parentheses, sitting on the exact line they fire on. From real chapters in our examples: "Distant Thunder (4s)", "Wind Howl (6s)", "Wind Gust (5s)", "Stones Launching (3s)".&lt;/p&gt;

&lt;p&gt;The three categories layer. A storm scene typically gets a tense music bed running underneath the whole thing, a wind-howl ambient soundscape over the storm description, and one-shot thunder cracks placed on the lines that describe the lightning. The editor shows all three layers stacked at the moments they overlap.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the editor surfaces the result
&lt;/h2&gt;

&lt;p&gt;After the Sounds pass completes, the chapter view shows you what the AI placed and where. Three surfaces matter:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inline SFX chips on the text.&lt;/strong&gt; One-shot sounds appear as small chips inside the body of the chapter, on the line they fire on, labeled with the sound name and duration. You can see at a glance how dense the placement is and whether the moments feel right.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The Sounds panel.&lt;/strong&gt; Lists every music bed and ambient soundscape the AI placed, along with which range of text they cover. This is the panel you use to swap a bed for a different track, change where a soundscape starts or ends, or remove a placement entirely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The library browser.&lt;/strong&gt; Same place you would use to add a sound by hand. You can preview anything in the library before assigning it, so swapping a bed is a low-risk operation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two behaviors that come up often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dragging chips.&lt;/strong&gt; SFX chips can be moved to a different line in the text if the AI placed one a beat early or late.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Removing placements.&lt;/strong&gt; Anything the AI put down can be deleted with no penalty. The point of the Sounds pass is to seed the chapter with reasonable choices, not to be irreversibly bolted in.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever you change in the panel takes effect on the next Generate Audio click. You do not have to re-run Auto-Assign Sounds when you swap a bed or move a chip. You only re-run the pass if you have rewritten enough of the source text that the original placement is now stale.&lt;/p&gt;

&lt;h2&gt;
  
  
  A concrete example
&lt;/h2&gt;

&lt;p&gt;To make this less abstract, here is roughly what happens on a few paragraphs of a typical fantasy chapter.&lt;/p&gt;

&lt;p&gt;The chapter opens with two characters approaching a cave during a storm. The first paragraph describes wind tearing at their cloaks, rain coming sideways, distant thunder rolling. The second paragraph has them ducking into the cave mouth. The third paragraph has one character striking flint to start a fire.&lt;/p&gt;

&lt;p&gt;After the Sounds pass:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A tense, low-register music bed lays in under the first two paragraphs. The AI reads "storm" plus the urgency in the action verbs and picks something that primes the listener for trouble.&lt;/li&gt;
&lt;li&gt;A wind-howl ambient soundscape sits over the outdoor portion and tapers as the characters enter the cave.&lt;/li&gt;
&lt;li&gt;One-shot SFX chips appear: a distant-thunder chip on the line about thunder rolling, a flint-strike chip on the line about striking sparks, a fire-crackle ambient layer that starts after the fire catches.&lt;/li&gt;
&lt;li&gt;The music bed shifts down (or out, depending on the AI's read) once the characters are safely inside, leaving the fire-crackle ambient and quiet dialogue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the AI doing the placement work for you. Whether each piece is right is a different question, which is why the editor is built around fast review rather than starting from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Edge cases and where the AI misfires
&lt;/h2&gt;

&lt;p&gt;The Sounds pass is good and uses the same underlying scene comprehension that powers the Characters pass. It also misfires in predictable ways.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Internal scenes get treated as external.&lt;/strong&gt; When a paragraph reads as a character internal monologue with vivid imagery (a memory of a battlefield, a dream of an ocean), the AI sometimes places real-world ambience as if the events were happening live. The fix is usually to remove the ambient layer for that range and let the music bed alone carry the mood. The rule of thumb: ambient soundscapes anchor place; if the place is imagined rather than present, the soundscape can land as too literal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mood mismatch on tonally ambiguous scenes.&lt;/strong&gt; A funeral that opens with a joke. A reconciliation that ends with a fight. Scenes that pivot in tone partway through can get a single dominant bed that fits one half and clashes with the other. The fix in the Sounds panel is usually to split the placement: let the original bed cover the first range, swap a different bed for the second.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SFX over-eagerness on dialogue-heavy chapters.&lt;/strong&gt; When a chapter is mostly two characters talking in a static setting, the AI sometimes places sparse SFX on every motion verb (a cup setting down, a chair scraping) that adds up to noise rather than texture. The fix is to delete the chips that do not need to be there. As a starting heuristic: keep SFX on moments that turn the scene, drop them on moments that just keep it moving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repetition across long stretches.&lt;/strong&gt; On long chapters, the AI can re-use the same ambient track across multiple scenes that happen in different places. The fix is to swap one of them; the variety reads as more produced. The Sounds panel makes this a one-click operation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Genre register drift.&lt;/strong&gt; Cozy mysteries and grimdark fantasies do not want the same musical palette. The AI gets the gross-level register right most of the time, but on chapter one of a new project, give the bed selections a closer look. By chapter three the pattern of swaps usually stabilizes into a register that fits your book and the AI's later passes start landing closer to where you would have placed things.&lt;/p&gt;

&lt;h2&gt;
  
  
  What composes well, what does not
&lt;/h2&gt;

&lt;p&gt;Two practical patterns we have seen across user chapters:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-Assign Sounds composes well for action, exterior scenes, and high-mood passages.&lt;/strong&gt; The denser the sensory description in the source text, the more cues the AI has to anchor placements to, and the more the result feels intentional. Storm scenes, chase sequences, battle scenes, ritual scenes all get strong starting points.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hand-curation is faster than auto-assign for sparse, intimate, or stylized scenes.&lt;/strong&gt; A two-character conversation in a quiet room with no environmental cues does not give the AI much to work with. You will usually end up wanting one ambient soundscape (the room, the rain outside, whatever the character notices) and maybe a single SFX on a key moment. In that case, the faster move is to drop those in yourself from the Sounds panel rather than running the pass and then deleting most of what it placed.&lt;/p&gt;

&lt;p&gt;For most book-length manuscripts, the answer is to run Auto-Assign Sounds on every chapter and then keep the hand-curation muscle warm for the chapters where the AI is fighting the material rather than helping it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your own audio in the same library
&lt;/h2&gt;

&lt;p&gt;One detail that matters for projects with a specific sonic identity: you are not limited to the built-in library. You can upload your own music and sound effects into your personal sound library and they sit alongside the built-in tracks for use in any of your projects. The Auto-Assign pass draws from the built-in catalogue, but anything you have uploaded shows up in the library browser and can be swapped in. For series with a recurring musical motif or a specific narrator-signature sting, that is the path.&lt;/p&gt;

&lt;p&gt;Standard caveat: only upload audio you are authorized to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this pass does not do
&lt;/h2&gt;

&lt;p&gt;To keep the picture honest:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It does not write music or generate SFX from scratch. It picks from a library of existing tracks (built-in plus anything you have uploaded). When customers ask whether they can generate a custom score, the answer today is no.&lt;/li&gt;
&lt;li&gt;It does not mix levels for you across tracks. The Sounds panel surfaces placements; final balance is what comes out of Generate Audio with the library's default mix.&lt;/li&gt;
&lt;li&gt;It does not handle publishing or distribution. The output is export-ready and compatible with major audiobook platforms, but uploading to them is your step.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;The free tier (1,200 words per month, no credit card) is enough to run Auto-Assign Sounds on a real chapter and develop a feel for what it places and where you push back. Pick a chapter that already has some action in it, click both Auto-Assigns, scan the inline SFX chips and the Sounds panel, swap one bed, delete one chip, click Generate. Forty-five minutes from a cold start to a finished audio drama of your own chapter.&lt;/p&gt;

&lt;p&gt;You can do that at &lt;a href="https://audioproducer.ai?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=auto-assign-sounds" rel="noopener noreferrer"&gt;audioproducer.ai&lt;/a&gt;. If you have already read the &lt;a href="https://dev.to/audioproducer-ai/how-audioproducerais-auto-assign-pipeline-turns-a-chapter-into-a-multi-voice-audio-drama-3daa"&gt;Auto-Assign pipeline post&lt;/a&gt;, this is the natural next click; if not, that one sets up the broader picture this post drills into.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: this article was drafted by an AI agent working on behalf of the AudioProducer.ai team.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>audio</category>
      <category>tts</category>
      <category>writing</category>
    </item>
    <item>
      <title>Voice cloning inside the audiobook pipeline: integration notes and trade-offs</title>
      <dc:creator>AudioProducer.ai</dc:creator>
      <pubDate>Thu, 14 May 2026 17:08:46 +0000</pubDate>
      <link>https://forem.com/audioproducer-ai/voice-cloning-inside-the-audiobook-pipeline-integration-notes-and-trade-offs-13hl</link>
      <guid>https://forem.com/audioproducer-ai/voice-cloning-inside-the-audiobook-pipeline-integration-notes-and-trade-offs-13hl</guid>
      <description>&lt;p&gt;When we shipped voice cloning in AudioProducer.ai, the easiest way to talk about it externally was the consumer pitch: bring your own voice, narrate your own book. That framing is true, but it leaves out what we have found interesting about the feature on the production side. Voice cloning is a system component, and the most useful way to describe it for a developer audience is by what it integrates with, what it leaves untouched, and where the engineering quirks land.&lt;/p&gt;

&lt;p&gt;This is a walkthrough of the cloning step as it sits inside the rest of our audiobook pipeline. What the abstraction looks like from the editor's point of view, where it sits in the per-chapter generation flow, the trade-offs we have watched accumulate across long-form jobs, and one operational rule that is structurally a constraint rather than a footnote.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cloning step is a "library voice" shape, by design
&lt;/h2&gt;

&lt;p&gt;The single design call that mattered most for keeping the pipeline tractable: a cloned voice is the same object type as a library voice. Both live on the same Voices page on the user's account home, in the same list, surfaced through the same selection affordance. After a clone is created, it is a row in the user's voice library with the same slots, the same per-line attachments, and the same selection dropdowns as the 132 built-in voices.&lt;/p&gt;

&lt;p&gt;This sounds like a small thing. It is the difference between voice cloning being a tractable feature and being a parallel system that has to be specially handled at every assignment point.&lt;/p&gt;

&lt;p&gt;When the user runs Auto-Assign Characters on a chapter, the AI does not need to know whether the user has cloned voices in their library. It does its job: tag every line by speaker, populate the Characters panel with one slot per voice that the chapter needs. The user then opens the panel and assigns a voice to each slot, picking from a flat dropdown that mixes library voices and clones interchangeably.&lt;/p&gt;

&lt;p&gt;When the user runs Auto-Assign Sounds, music beds and one-shot effects get placed independent of voice choices. When the user clicks Generate Audio, the renderer asks each character slot for its assigned voice, gets back a voice descriptor that may resolve to a library asset or a cloned asset, and proceeds without branching on origin.&lt;/p&gt;

&lt;p&gt;The boundary between "library" and "cloned" is therefore very thin. It lives inside the voice-resolution layer and almost nowhere else in the user-facing pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the clone slots into the per-chapter flow
&lt;/h2&gt;

&lt;p&gt;For a fresh project, the pipeline phases (familiar from our earlier post on Auto-Assign) are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Source text in, paste a chapter or import an EPUB.&lt;/li&gt;
&lt;li&gt;Auto-Assign Characters, AI tags every line by speaker.&lt;/li&gt;
&lt;li&gt;Auto-Assign Sounds, AI places music, soundscapes, and SFX.&lt;/li&gt;
&lt;li&gt;Generate Audio, renders the finished file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A cloned voice does not change any of these phases. It changes exactly one assignment: in the Characters panel after step 2, the user can pick their clone (or any mix of clones and library voices) for any character or for the narrator. The clone itself is created out of band, on the Voices page, by uploading a reference clip; once it exists, it appears in the assignment dropdowns the same way the library voices do.&lt;/p&gt;

&lt;p&gt;The implication for the pipeline is that cloning is a one-time setup step, not a per-chapter step. A writer who clones their own voice once can then use that clone across every project, every chapter, and every regeneration without re-uploading. It is a row in their voice library, parallel to "British young-male voice 47."&lt;/p&gt;

&lt;p&gt;For a writer who is iterating on a chapter, this also means a voice swap from a library voice to a clone (or vice versa) does not require re-running Auto-Assign Characters or Auto-Assign Sounds. The next Generate Audio asks the slot for its current voice and renders.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trade-offs we have watched in production
&lt;/h2&gt;

&lt;p&gt;A few practical notes that surface after running the feature in production for a while. None of these invalidate the use case, but they are worth being explicit about for anyone planning to use cloning in a long-form workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloned voices behave slightly different than library voices on long-form audio drama.&lt;/strong&gt; Across multi-chapter generations, cloned voices can drift in consistency in ways that highly-tuned library voices do not. The reference clip is a finite sample; the model interpolates from that sample to whatever the manuscript asks. Library voices were trained on much more material per voice, so their tendency under unusual prompts is more predictable. Practical implication: for projects where consistency across a 100,000-word manuscript matters more than the specific timbre, a well-chosen library voice may be the better call. For projects where the specific timbre is the point (narrator in their own voice, podcast host signature, a character voice that no library option captures), a clone is the right call and the consistency is good enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Per-line emotion control still applies.&lt;/strong&gt; This matters in practice: when the user tags a dialogue line with an emotion (anger, fear, calm), the renderer applies that emotion to whichever voice is assigned to the line, library or clone. Cloned voices are not a flat-affect path. The same cloned character can read one line angry and the next calm, the way a library voice would.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The reference clip matters more than people expect.&lt;/strong&gt; A two-minute clean read at the pace the user actually wants to narrate produces a noticeably different clone than a thirty-second clip recorded in a noisy room. We see this enough in support to be worth saying explicitly: the reference clip is the source of truth for the clone's character. Time spent on the clip is more leveraged than time spent re-cloning later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Re-generation budgets the same for clones and library voices.&lt;/strong&gt; A regeneration of a chapter consumes word allowance whether the character is a clone or a library voice. There is no separate cloning quota. This is the kind of detail that matters in production planning: when the user iterates on a chapter, the cost model does not branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloning is available on the free tier.&lt;/strong&gt; A deliberate call on the pricing side: the cloning feature is most useful when the user can verify its output against their own ear, and that verification needs to be cheap. The free tier (1,200 words per month, no credit card) is enough to upload a reference clip, generate a clone, render an opening chapter using that clone, and listen. Putting the feature behind a higher tier would push users to decide whether to clone before they have evidence the result will be what they want, which is the wrong place for that decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  The authorization rule is a structural constraint
&lt;/h2&gt;

&lt;p&gt;The hard rule we surface in the product is the same one we surface in our customer-facing docs: only clone voices the user is authorized to use.&lt;/p&gt;

&lt;p&gt;This is not a soft warning. The authorization for any voice the user clones sits with the user, and the responsibility for that authorization carries through into the produced audio. From a system-design perspective, this means the cloning endpoint is a place where user input determines a legal posture, and that posture cannot be relitigated downstream. We surface the rule at the upload step and leave the responsibility where it belongs.&lt;/p&gt;

&lt;p&gt;The operating principle is simple. The user's own voice is fine. A voice the user has explicit permission to clone is fine. A public-domain recording cleared for this purpose is fine. A voice the user does not have permission to use is not what the feature is for.&lt;/p&gt;

&lt;p&gt;This is the kind of constraint that is easier to design around once than to retrofit. It is also the kind of constraint that is worth being honest about in the docs rather than burying.&lt;/p&gt;

&lt;h2&gt;
  
  
  End to end
&lt;/h2&gt;

&lt;p&gt;A writer who wants to narrate their own book in their own voice, from a cold start, runs through this sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Sign up for the free tier. Open the Voices page on the account home.&lt;/li&gt;
&lt;li&gt;Upload a clean reference clip (a couple of minutes of speech at the pace the writer wants to narrate).&lt;/li&gt;
&lt;li&gt;Create a fresh project. Paste a chapter or import an EPUB.&lt;/li&gt;
&lt;li&gt;Run Auto-Assign Characters. Open the Characters panel.&lt;/li&gt;
&lt;li&gt;Assign the cloned voice to the narrator slot. Leave any character voices on library defaults, or swap them.&lt;/li&gt;
&lt;li&gt;Run Auto-Assign Sounds. Click Generate Audio.&lt;/li&gt;
&lt;li&gt;Listen to the chapter.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The flow is on the order of a few minutes once the reference clip is in hand, and the result is a chapter rendered in the writer's own voice. If the read is right, the same clone carries forward across every chapter, every regeneration, every future project, without re-uploading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;If you want to develop intuition for what cloning produces in your own pipeline, the cleanest way in is to clone a voice you already have a clean reference clip for, render an opening chapter, and listen. The free tier handles this end to end: &lt;a href="https://audioproducer.ai/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=voice-cloning" rel="noopener noreferrer"&gt;audioproducer.ai&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: this article was drafted by an AI agent working on behalf of the AudioProducer.ai team.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>audio</category>
      <category>tts</category>
      <category>voicecloning</category>
    </item>
    <item>
      <title>How AudioProducer.ai's Auto-Assign pipeline turns a chapter into a multi-voice audio drama</title>
      <dc:creator>AudioProducer.ai</dc:creator>
      <pubDate>Tue, 12 May 2026 02:34:36 +0000</pubDate>
      <link>https://forem.com/audioproducer-ai/how-audioproducerais-auto-assign-pipeline-turns-a-chapter-into-a-multi-voice-audio-drama-3daa</link>
      <guid>https://forem.com/audioproducer-ai/how-audioproducerais-auto-assign-pipeline-turns-a-chapter-into-a-multi-voice-audio-drama-3daa</guid>
      <description>&lt;p&gt;Making a multi-voice audiobook used to mean booking a studio, casting voice actors, and waiting weeks for production. We built AudioProducer.ai to compress that pipeline into something a writer can run from a browser in an afternoon — plain chapter text in, finished audio drama out, with the AI doing the bulk of the markup work.&lt;/p&gt;

&lt;p&gt;This post is a walkthrough of the two passes that do the heavy lifting: &lt;strong&gt;Auto-Assign Characters&lt;/strong&gt; and &lt;strong&gt;Auto-Assign Sounds&lt;/strong&gt;. We'll cover what each pass takes as input, what it produces, and how the editor surfaces the result for you to tune. The goal is to make the pipeline legible — so when you sit down with a chapter and click the buttons, you know what the system is actually doing on your behalf.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shape of the pipeline
&lt;/h2&gt;

&lt;p&gt;The product treats every project as a sequence of chapters. For each chapter, the pipeline runs in four phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Source text in.&lt;/strong&gt; Paste a chapter into the editor, or upload an &lt;code&gt;.epub&lt;/code&gt; and the project gets pre-populated with chapter structure, titles, and body text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Assign Characters.&lt;/strong&gt; One-click AI pass that reads the chapter and tags every line by speaker — narrator, named characters, even in-world labels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-Assign Sounds.&lt;/strong&gt; Second one-click AI pass that analyzes the scene and places music beds, ambient soundscapes, and one-shot sound effects from the built-in library.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate Audio.&lt;/strong&gt; A single button renders the chapter into a finished audio file using the assigned voices and placed sounds.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Auto-Assign is a starting point, not a final answer. The editor is built around the idea that you'll keep what the AI got right and correct what it got wrong, in seconds per line — not by hand-tagging the whole chapter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-Assign Characters — what it actually does
&lt;/h2&gt;

&lt;p&gt;Input: raw chapter text. Output: every line attributed to a speaker, with the speakers populated as a per-character voice slot on the project.&lt;/p&gt;

&lt;p&gt;Three kinds of speakers come out of this pass:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Narrator.&lt;/strong&gt; Anything that isn't a character speaking goes to the narrator track. Description, scene-setting, action beats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Named characters.&lt;/strong&gt; "Alice", "the White Rabbit", "Eryndor" — every distinct named voice in the chapter gets its own slot. The AI handles attribution heuristics (who's speaking based on dialogue tags, conversational context, scene cues) so you don't have to walk every line manually.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-world labels.&lt;/strong&gt; This is the part that surprises new users. The AI catches text that isn't spoken by a character but should still be voiced distinctly — labels on jars, signs in a scene, captions a narrator reads aloud. In our editor's Alice in Wonderland example, you'll see entries like "Cake Label", "Label on the jar", and "Bottle Label" as distinct voice slots alongside Alice and the White Rabbit. Give those labels their own narrator voice (or even their own character voice if you want), and they read differently than the surrounding prose.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After the pass, the Characters panel shows you every speaker the AI extracted with a voice already provisionally assigned. You can swap any of those voices from the 132-voice library on your Voices page — or replace them with a voice you've cloned yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Correcting what the AI gets wrong
&lt;/h3&gt;

&lt;p&gt;The Auto-Assign is good but not perfect. Common cases where it gets a line wrong:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The source uses unusual dialogue conventions (no quotation marks, character-speech embedded in narration paragraphs, attribution patterns the AI hasn't seen often).&lt;/li&gt;
&lt;li&gt;A scene has two characters with similar names and the attribution-by-context heuristic picks the wrong one.&lt;/li&gt;
&lt;li&gt;A line of free indirect speech ("Alice thought it odd that the rabbit was wearing a waistcoat...") could be the narrator or could be inside Alice's head — judgment call.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The editor handles the fix with a two-click pattern: select the line, pick the right character from the dropdown, done. You don't re-run the whole pass; the rest of the chapter's tags are preserved. For source texts with widespread attribution problems, the more efficient move is usually to standardize the punctuation in the source first and re-run the pass — the AI's accuracy is much higher on well-marked-up source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-Assign Sounds — what it actually does
&lt;/h2&gt;

&lt;p&gt;Input: the same chapter text, now with characters assigned. Output: music beds, ambient soundscapes, and one-shot sound effects placed at the right moments.&lt;/p&gt;

&lt;p&gt;The pass distinguishes three audio types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Music beds&lt;/strong&gt; — long-form atmospheric tracks that play under sections of text. Use to set tone for a scene or sequence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambient soundscapes&lt;/strong&gt; — environmental layers (wind, rain, crowd noise, ocean). These set place rather than mood.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-shot SFX&lt;/strong&gt; — discrete events tied to a specific moment in the text. The chips show up inline in the editor at the moment they play, with the sound name and duration: "Distant Thunder (4s)", "Wind Howl (6s)", "Stones Launching (3s)".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In practice, what this looks like for an action scene: the chapter opens, the AI places a tense music bed under the first few paragraphs, layers a wind-howl soundscape over the storm description, and drops a "Stones Launching" SFX exactly on the line where the slingshot fires. All in one click; the chips are visible in the editor view, so you can see exactly what was placed where.&lt;/p&gt;

&lt;p&gt;The tune-it pattern is the same as for characters: keep what fits, replace what doesn't. The Sounds panel of the editor lets you swap any placed track for a different one from the library, drag SFX to different moments, or remove placements that read as noise.&lt;/p&gt;

&lt;h2&gt;
  
  
  The voice library angle
&lt;/h2&gt;

&lt;p&gt;The Auto-Assign Characters pass gets you to "every speaker has a voice." The Voices page is where you decide &lt;em&gt;which&lt;/em&gt; voice each speaker gets.&lt;/p&gt;

&lt;p&gt;A few notes that matter for picking voices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;132 voices in the library&lt;/strong&gt; as of this writing, across a mix of male / female / unlabeled, middle-aged / young / older, plus dedicated child-male and child-female voices for kids' content. Accent coverage is mostly American with British, US-Southern, Irish, Australian, Indian, and Spanish-accented English in the mix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The library is actively growing.&lt;/strong&gt; New voices land regularly; the canonical source is your in-app Voices page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-line emotion control.&lt;/strong&gt; Same voice, different inflection per line. You attach an emotion tag (anger, fear, calm, etc.) to specific dialogue lines in the editor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice cloning.&lt;/strong&gt; You can clone a voice (your own, or any voice you're authorized to use) and use it like any library voice. Useful for narrating in your own voice without a recording rig, for distinct character voices that aren't in the library, or for brand consistency on a podcast.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Voice changes don't require re-running Auto-Assign — they take effect on the next Generate Audio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it together
&lt;/h2&gt;

&lt;p&gt;The flow, end to end, from a fresh project:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a project; either paste a chapter into the editor or import an &lt;code&gt;.epub&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Auto-Assign Characters&lt;/strong&gt;. Review the Characters panel; correct any obvious miscasts.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Auto-Assign Sounds&lt;/strong&gt;. Review the placed music / SFX in the editor; swap or remove what doesn't fit.&lt;/li&gt;
&lt;li&gt;Open the Voices page; swap library voices into the character slots that need them, or assign a cloned voice if you've made one.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate Audio&lt;/strong&gt;. The chapter renders into a downloadable audio file.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No external audio software in the loop. No separate DAW for mixing. The editor is the place where the audio production happens and the audio file is the output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pauses and pacing (briefly)
&lt;/h2&gt;

&lt;p&gt;One detail that comes up frequently for writers used to manually mixing audiobooks: pause control. Pauses are configurable at four levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inline pauses&lt;/strong&gt; for dramatic effect inside a paragraph.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project-wide default pause&lt;/strong&gt; between paragraph breaks (set once per project).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-paragraph override&lt;/strong&gt; when a specific transition needs more breath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intro pauses&lt;/strong&gt; for the project intro (title / author / narrator) and chapter intros.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Multiple consecutive blank lines collapse to a single pause, which is usually what you want.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note on what the pipeline doesn't do
&lt;/h2&gt;

&lt;p&gt;Auto-Assign covers character attribution and sound placement. A few things sit outside the pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Publishing to Audible, Spotify, or Apple Podcasts&lt;/strong&gt; — the output is export-ready, but you upload to those platforms yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Royalty or sales tracking&lt;/strong&gt; for audiobooks sold elsewhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Non-EPUB import&lt;/strong&gt; — &lt;code&gt;.docx&lt;/code&gt;, &lt;code&gt;.pdf&lt;/code&gt;, &lt;code&gt;.mobi&lt;/code&gt;, and &lt;code&gt;.txt&lt;/code&gt; aren't supported import formats today; for those, paste chapter-by-chapter into a blank project or convert your source to &lt;code&gt;.epub&lt;/code&gt; first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We mention these so the pipeline picture is accurate — the audio production is end-to-end inside AudioProducer.ai; distribution is your last step outside it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;There's a free tier (1,200 words per month, no credit card) on &lt;a href="https://audioproducer.ai?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=auto-assign-pipeline" rel="noopener noreferrer"&gt;audioproducer.ai&lt;/a&gt;. Pick a chapter, run both Auto-Assigns, swap a couple of voices, click Generate. The fastest way to develop intuition for what the pipeline does well — and where you'll spend the most editing time — is to feed it ten pages of your own writing and see what comes back.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclosure: this article was drafted by an AI agent working on behalf of the AudioProducer.ai team.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>audio</category>
      <category>tts</category>
      <category>writing</category>
    </item>
  </channel>
</rss>
