diff --git a/create_audiobook_lightbringer.py b/create_audiobook_lightbringer.py index 81952fe..36beace 100644 --- a/create_audiobook_lightbringer.py +++ b/create_audiobook_lightbringer.py @@ -142,10 +142,13 @@ def clean_text(text: str) -> str: def _fmt_duration(seconds: float) -> str: - if seconds >= 60: - m, s = divmod(int(seconds), 60) + h, rem = divmod(int(seconds), 3600) + m, s = divmod(rem, 60) + if h > 0: + return f"{h}h {m:02d}m {s:02d}s" + if m > 0: return f"{m}m {s:02d}s" - return f"{seconds:.0f}s" + return f"{s}s" def generate_audio(pipeline: KPipeline, text: str, voice: str, @@ -166,7 +169,7 @@ def generate_audio(pipeline: KPipeline, text: str, voice: str, sf.write(str(output_path), audio, SAMPLE_RATE) duration = len(audio) / SAMPLE_RATE print(f" ✓ Saved '{output_path.name}' " - f"({duration:.1f}s audio | {elapsed:.1f}s wall-clock)") + f"({_fmt_duration(duration)} audio | {_fmt_duration(elapsed)} wall-clock)") else: print(f" ✗ No audio produced for voice='{voice}'") return elapsed @@ -280,7 +283,9 @@ def main() -> None: total_elapsed_done = sum(e for _, _, e in timing_rows) if total_elapsed_done > 0: chars_per_sec = total_done / total_elapsed_done - print(f" ⏱ Calibration: {chars_per_sec:.0f} chars/sec") + remaining = total_chars - total_done + eta_overall = _fmt_duration(remaining / chars_per_sec) if remaining > 0 else "0s" + print(f" ⏱ Speed: {chars_per_sec:.0f} chars/sec | Est. overall remaining: {eta_overall}") # Summary print("\n" + "─" * 65) diff --git a/create_audiobook_nem.py b/create_audiobook_nem.py index c74f81d..c277c99 100644 --- a/create_audiobook_nem.py +++ b/create_audiobook_nem.py @@ -142,11 +142,14 @@ def clean_text(text: str) -> str: def _fmt_duration(seconds: float) -> str: - """Format seconds as 'Xm Ys' or 'Xs'.""" - if seconds >= 60: - m, s = divmod(int(seconds), 60) + """Format seconds as 'Xh Ym Zs', 'Xm Ys', or 'Xs'.""" + h, rem = divmod(int(seconds), 3600) + m, s = divmod(rem, 60) + if h > 0: + return f"{h}h {m:02d}m {s:02d}s" + if m > 0: return f"{m}m {s:02d}s" - return f"{seconds:.0f}s" + return f"{s}s" def generate_audio(pipeline: KPipeline, text: str, voice: str, @@ -166,7 +169,7 @@ def generate_audio(pipeline: KPipeline, text: str, voice: str, sf.write(str(output_path), audio, SAMPLE_RATE) elapsed = time.monotonic() - t0 duration = len(audio) / SAMPLE_RATE - print(f" ✓ Saved '{output_path.name}' ({duration:.1f}s audio | {elapsed:.1f}s wall-clock)") + print(f" ✓ Saved '{output_path.name}' ({_fmt_duration(duration)} audio | {_fmt_duration(elapsed)} wall-clock)") else: elapsed = time.monotonic() - t0 print(f" ✗ No audio produced for voice='{voice}'") @@ -291,7 +294,9 @@ def main() -> None: total_elapsed_done = sum(e for _, _, e in timing_rows) if total_elapsed_done > 0: chars_per_sec = total_chars_done / total_elapsed_done - print(f" ⏱ Calibration: {chars_per_sec:.0f} chars/sec") + remaining = total_chars - total_chars_done + eta_overall = _fmt_duration(remaining / chars_per_sec) if remaining > 0 else "0s" + print(f" ⏱ Speed: {chars_per_sec:.0f} chars/sec | Est. overall remaining: {eta_overall}") # ── Summary ──────────────────────────────────────────────────────────────── print("\n" + "─" * 60) diff --git a/output_proper_nouns/audio_text_for_novel_lightbringer/manifest.json b/output_proper_nouns/audio_text_for_novel_lightbringer/manifest.json new file mode 100644 index 0000000..c9e6b27 --- /dev/null +++ b/output_proper_nouns/audio_text_for_novel_lightbringer/manifest.json @@ -0,0 +1,778 @@ +{ + "Aaagast": "aaagast.wav", + "Abby": "abby.wav", + "Abigail": "abigail.wav", + "Abodey": "abodey.wav", + "Abriyyah": "abriyyah.wav", + "Abyss": "abyss.wav", + "Adamantine": "adamantine.wav", + "Addobes": "addobes.wav", + "Adobbes": "adobbes.wav", + "Aedrick": "aedrick.wav", + "Aegis": "aegis.wav", + "Aegrir": "aegrir.wav", + "Afire": "afire.wav", + "Agatha": "agatha.wav", + "Agony": "agony.wav", + "Agrarian": "agrarian.wav", + "Aheer": "aheer.wav", + "Ahman": "ahman.wav", + "Ailondel": "ailondel.wav", + "Airk": "airk.wav", + "Al-Astan": "al_astan.wav", + "Alchemist": "alchemist.wav", + "Alvrin": "alvrin.wav", + "Amarantha": "amarantha.wav", + "Amaryllis": "amaryllis.wav", + "Ananduil": "ananduil.wav", + "Anaudriel": "anaudriel.wav", + "Andrahel": "andrahel.wav", + "Anhuil": "anhuil.wav", + "Anhuil-Ehlar": "anhuil_ehlar.wav", + "Anhuil-Elhar": "anhuil_elhar.wav", + "Anjeer": "anjeer.wav", + "Ankh": "ankh.wav", + "Annalise": "annalise.wav", + "Anointing": "anointing.wav", + "Anoush": "anoush.wav", + "Anuil": "anuil.wav", + "Anvilhammer": "anvilhammer.wav", + "Ara": "ara.wav", + "Aragast": "aragast.wav", + "Aragst": "aragst.wav", + "Aralon": "aralon.wav", + "Aran": "aran.wav", + "Arans": "arans.wav", + "Arashan": "arashan.wav", + "Arbiter": "arbiter.wav", + "Archmage": "archmage.wav", + "Archwizard": "archwizard.wav", + "Ardrick": "ardrick.wav", + "Argast": "argast.wav", + "Armbrook": "armbrook.wav", + "Armory": "armory.wav", + "Arn": "arn.wav", + "Arn-Del": "arn_del.wav", + "Asheer": "asheer.wav", + "Aske": "aske.wav", + "Aster": "aster.wav", + "Astor": "astor.wav", + "Astral": "astral.wav", + "Astride": "astride.wav", + "Astute": "astute.wav", + "Avery": "avery.wav", + "Avorein": "avorein.wav", + "Await": "await.wav", + "Awww": "awww.wav", + "Axehammer": "axehammer.wav", + "Ayana": "ayana.wav", + "Ayron": "ayron.wav", + "Azuremoon": "azuremoon.wav", + "Badlands": "badlands.wav", + "Baelen": "baelen.wav", + "Bah": "bah.wav", + "Ballista": "ballista.wav", + "Bancroft": "bancroft.wav", + "Baras": "baras.wav", + "Barek": "barek.wav", + "Barge": "barge.wav", + "Barrik": "barrik.wav", + "Battlelord": "battlelord.wav", + "Bazaar": "bazaar.wav", + "Bearas": "bearas.wav", + "Bearasagain": "bearasagain.wav", + "Bearasand": "bearasand.wav", + "Bearasasked": "bearasasked.wav", + "Bearasat": "bearasat.wav", + "Bearasbegan": "bearasbegan.wav", + "Bearasbowed": "bearasbowed.wav", + "Bearascan": "bearascan.wav", + "Bearasdown": "bearasdown.wav", + "Bearasemerged": "bearasemerged.wav", + "Bearasfelt": "bearasfelt.wav", + "Bearasfor": "bearasfor.wav", + "Bearashad": "bearashad.wav", + "Bearashas": "bearashas.wav", + "Bearasheld": "bearasheld.wav", + "Bearashesitantly": "bearashesitantly.wav", + "Bearasin": "bearasin.wav", + "Bearasleading": "bearasleading.wav", + "Bearasmust": "bearasmust.wav", + "Bearasnodded": "bearasnodded.wav", + "Bearasperplexed": "bearasperplexed.wav", + "Bearasquickly": "bearasquickly.wav", + "Bearasreleased": "bearasreleased.wav", + "Bearassaid": "bearassaid.wav", + "Bearassat": "bearassat.wav", + "Bearassimply": "bearassimply.wav", + "Bearasslowly": "bearasslowly.wav", + "Bearassome": "bearassome.wav", + "Bearasspeaks": "bearasspeaks.wav", + "Bearassteeled": "bearassteeled.wav", + "Bearasstood": "bearasstood.wav", + "Bearasthat": "bearasthat.wav", + "Bearasthen": "bearasthen.wav", + "Bearasto": "bearasto.wav", + "Bearastrailed": "bearastrailed.wav", + "Bearaswandered": "bearaswandered.wav", + "Bearaswho": "bearaswho.wav", + "Bearaswith": "bearaswith.wav", + "Beldvorth": "beldvorth.wav", + "Belegast": "belegast.wav", + "Berstag": "berstag.wav", + "Beydell": "beydell.wav", + "Blackfeather": "blackfeather.wav", + "Blackroot": "blackroot.wav", + "Blargh": "blargh.wav", + "Bledvorth": "bledvorth.wav", + "Blessings": "blessings.wav", + "Bloodstone": "bloodstone.wav", + "Bloodtone": "bloodtone.wav", + "Bogard": "bogard.wav", + "Boldar": "boldar.wav", + "Bolton": "bolton.wav", + "Bon": "bon.wav", + "Boomer": "boomer.wav", + "Bouldershaun": "bouldershaun.wav", + "Boulevarde": "boulevarde.wav", + "Brahma": "brahma.wav", + "Bramble": "bramble.wav", + "Brambleburr": "brambleburr.wav", + "Brambleburrs": "brambleburrs.wav", + "Branson": "branson.wav", + "Bravado": "bravado.wav", + "Brax": "brax.wav", + "Braz": "braz.wav", + "Brazen": "brazen.wav", + "Brazenclaw": "brazenclaw.wav", + "Brazenclaws": "brazenclaws.wav", + "Breeches": "breeches.wav", + "Brendan": "brendan.wav", + "Brethren": "brethren.wav", + "Brickhorn": "brickhorn.wav", + "Caldwell": "caldwell.wav", + "Calico": "calico.wav", + "Caller": "caller.wav", + "Camels": "camels.wav", + "Canals": "canals.wav", + "Captains": "captains.wav", + "Caravan": "caravan.wav", + "Caswold": "caswold.wav", + "Causeway": "causeway.wav", + "Cavalier": "cavalier.wav", + "Cavern": "cavern.wav", + "Cherrytree": "cherrytree.wav", + "Chieftain": "chieftain.wav", + "Chivalrous": "chivalrous.wav", + "Chun": "chun.wav", + "Citadel": "citadel.wav", + "Clarn": "clarn.wav", + "Claw": "claw.wav", + "Cleric": "cleric.wav", + "Cobblestone": "cobblestone.wav", + "Contessa": "contessa.wav", + "Corporal": "corporal.wav", + "Cotswold": "cotswold.wav", + "Councillor": "councillor.wav", + "Councilman": "councilman.wav", + "Councilmen": "councilmen.wav", + "Councilor": "councilor.wav", + "Crimson": "crimson.wav", + "Crismon": "crismon.wav", + "Cylan": "cylan.wav", + "Dai": "dai.wav", + "Dalthanis": "dalthanis.wav", + "Dank": "dank.wav", + "Dayr": "dayr.wav", + "Dedric": "dedric.wav", + "Delgra": "delgra.wav", + "Delic": "delic.wav", + "Denizen": "denizen.wav", + "Denizens": "denizens.wav", + "Deric": "deric.wav", + "Derrbane": "derrbane.wav", + "Derro": "derro.wav", + "Derrobane": "derrobane.wav", + "Dibble": "dibble.wav", + "Diblon": "diblon.wav", + "Dire": "dire.wav", + "Dis": "dis.wav", + "Dobson": "dobson.wav", + "Dorian": "dorian.wav", + "Dorza": "dorza.wav", + "Dragonbane": "dragonbane.wav", + "Dragonsbane": "dragonsbane.wav", + "Drakor": "drakor.wav", + "Draygon": "draygon.wav", + "Drefan": "drefan.wav", + "Ducan": "ducan.wav", + "Duggan": "duggan.wav", + "Dulak": "dulak.wav", + "Dunca": "dunca.wav", + "Dune": "dune.wav", + "Dur": "dur.wav", + "Dur-Hakan": "dur_hakan.wav", + "Durgane": "durgane.wav", + "Durthaim": "durthaim.wav", + "Durthrim": "durthrim.wav", + "Dwarf": "dwarf.wav", + "Dwarven": "dwarven.wav", + "Earlson": "earlson.wav", + "Eastward": "eastward.wav", + "Effigius": "effigius.wav", + "Ehlar": "ehlar.wav", + "El-Ran": "el_ran.wav", + "El-Shen": "el_shen.wav", + "Elan": "elan.wav", + "Elessel": "elessel.wav", + "Elf": "elf.wav", + "Elhar": "elhar.wav", + "Elishan": "elishan.wav", + "Eliza": "eliza.wav", + "Elliswan": "elliswan.wav", + "Elliwsan": "elliwsan.wav", + "Elodea": "elodea.wav", + "Elshan": "elshan.wav", + "Elven": "elven.wav", + "Elvenkind": "elvenkind.wav", + "Elves": "elves.wav", + "Elvrathas": "elvrathas.wav", + "Elysium": "elysium.wav", + "Emaleen": "emaleen.wav", + "Eminence": "eminence.wav", + "Emissary": "emissary.wav", + "Emporium": "emporium.wav", + "Enaru": "enaru.wav", + "Endaleth": "endaleth.wav", + "Envoy": "envoy.wav", + "Eppres": "eppres.wav", + "Eradication": "eradication.wav", + "Eru": "eru.wav", + "Eshela": "eshela.wav", + "Ethereal": "ethereal.wav", + "Eushon": "eushon.wav", + "Eushownava": "eushownava.wav", + "Everdark": "everdark.wav", + "Everytime": "everytime.wav", + "Eylana": "eylana.wav", + "Eylanan": "eylanan.wav", + "Ezrin": "ezrin.wav", + "F-Fine": "f_fine.wav", + "F-Forgive": "f_forgive.wav", + "Faerie": "faerie.wav", + "Fairik": "fairik.wav", + "Fargus": "fargus.wav", + "Fark": "fark.wav", + "Farraj": "farraj.wav", + "Farush": "farush.wav", + "Feasthall": "feasthall.wav", + "Featherstone": "featherstone.wav", + "Felaria": "felaria.wav", + "Feliq": "feliq.wav", + "Felnck": "felnck.wav", + "Felnick": "felnick.wav", + "Felnicks": "felnicks.wav", + "Felnik": "felnik.wav", + "Fenaya": "fenaya.wav", + "Feneya": "feneya.wav", + "Ferrus": "ferrus.wav", + "Fey": "fey.wav", + "Firebane": "firebane.wav", + "Fireshard": "fireshard.wav", + "Foomwairma": "foomwairma.wav", + "Forger": "forger.wav", + "Frandor": "frandor.wav", + "Friarsdai": "friarsdai.wav", + "Fumairma": "fumairma.wav", + "Fumwairma": "fumwairma.wav", + "Galantholas": "galantholas.wav", + "Galathorn": "galathorn.wav", + "Galen": "galen.wav", + "Galonti": "galonti.wav", + "Garb": "garb.wav", + "Gareth": "gareth.wav", + "Garvek": "garvek.wav", + "Gaunt": "gaunt.wav", + "Gavin": "gavin.wav", + "Geez": "geez.wav", + "Ghurauk": "ghurauk.wav", + "Gilandras": "gilandras.wav", + "Gilard": "gilard.wav", + "Gilchis": "gilchis.wav", + "Gilchris": "gilchris.wav", + "Gilding": "gilding.wav", + "Gilrick": "gilrick.wav", + "Glades": "glades.wav", + "Glanthalas": "glanthalas.wav", + "Glantholas": "glantholas.wav", + "Glimmerwyn": "glimmerwyn.wav", + "Gloomstone": "gloomstone.wav", + "Gnaum": "gnaum.wav", + "Gnomish": "gnomish.wav", + "Goblinkin": "goblinkin.wav", + "Goldsheen": "goldsheen.wav", + "Gorath": "gorath.wav", + "Gore": "gore.wav", + "Gorg": "gorg.wav", + "Gorlyn": "gorlyn.wav", + "Gorstad": "gorstad.wav", + "Gotto": "gotto.wav", + "Graces": "graces.wav", + "Graffel": "graffel.wav", + "Grandmaster": "grandmaster.wav", + "Granitestone": "granitestone.wav", + "Gratzel": "gratzel.wav", + "Graystrom": "graystrom.wav", + "Greathaven": "greathaven.wav", + "Gregarious": "gregarious.wav", + "Gregor": "gregor.wav", + "Griffon": "griffon.wav", + "Grimbold": "grimbold.wav", + "Gripp": "gripp.wav", + "Grizzled": "grizzled.wav", + "Grog": "grog.wav", + "Grogg": "grogg.wav", + "Grotto": "grotto.wav", + "Gruff": "gruff.wav", + "Gruul": "gruul.wav", + "Guardarm": "guardarm.wav", + "Gustafson": "gustafson.wav", + "Guza": "guza.wav", + "Gylis": "gylis.wav", + "Habani": "habani.wav", + "Hagatha": "hagatha.wav", + "Hakan": "hakan.wav", + "Hallowed": "hallowed.wav", + "Halthessala": "halthessala.wav", + "Hammerhaft": "hammerhaft.wav", + "Har": "har.wav", + "Harbrim": "harbrim.wav", + "Harbrin": "harbrin.wav", + "Hardrock": "hardrock.wav", + "Harrik": "harrik.wav", + "Hauberk": "hauberk.wav", + "Hazards": "hazards.wav", + "Headmaster": "headmaster.wav", + "Heed": "heed.wav", + "Hells": "hells.wav", + "Henceforth": "henceforth.wav", + "Hendel": "hendel.wav", + "Heshbani": "heshbani.wav", + "Hesta": "hesta.wav", + "Hestra": "hestra.wav", + "Heykingygladtomeetyouireallylikeithereitremindsmeofmyhome": "heykingygladtomeetyouireallylikeithereitremindsmeofmyhome.wav", + "Highlands": "highlands.wav", + "Highlord": "highlord.wav", + "Hillsfar": "hillsfar.wav", + "Hmmm": "hmmm.wav", + "Homecoming": "homecoming.wav", + "Horblaster": "horblaster.wav", + "Horde": "horde.wav", + "Horgard": "horgard.wav", + "Hornblade": "hornblade.wav", + "Hornblaster": "hornblaster.wav", + "Horned": "horned.wav", + "Hrumph": "hrumph.wav", + "Huen": "huen.wav", + "Hylan": "hylan.wav", + "Illuminant": "illuminant.wav", + "Illuminated": "illuminated.wav", + "Illumination": "illumination.wav", + "Ilrodel": "ilrodel.wav", + "Imp": "imp.wav", + "Inquisitor": "inquisitor.wav", + "Ironblade": "ironblade.wav", + "Ironbound": "ironbound.wav", + "Ironguard": "ironguard.wav", + "Ironhold": "ironhold.wav", + "Ironspear": "ironspear.wav", + "Irontree": "irontree.wav", + "Iston": "iston.wav", + "Jabari": "jabari.wav", + "Jabbed": "jabbed.wav", + "Jacob": "jacob.wav", + "Jad": "jad.wav", + "Janson": "janson.wav", + "Jasyen": "jasyen.wav", + "Jayden": "jayden.wav", + "Jaylan": "jaylan.wav", + "Jaysen": "jaysen.wav", + "Jewel": "jewel.wav", + "Jors": "jors.wav", + "Jovially": "jovially.wav", + "Kaash": "kaash.wav", + "Kah": "kah.wav", + "Kalzaduum": "kalzaduum.wav", + "Karnak": "karnak.wav", + "Kaspar": "kaspar.wav", + "Kassie": "kassie.wav", + "Keldris": "keldris.wav", + "Kelshard": "kelshard.wav", + "Kelvesh": "kelvesh.wav", + "Kelvin": "kelvin.wav", + "Kelwane": "kelwane.wav", + "Kev": "kev.wav", + "Khaki": "khaki.wav", + "Kihee": "kihee.wav", + "Kihee-Uust": "kihee_uust.wav", + "Kiiri": "kiiri.wav", + "Kin": "kin.wav", + "Kirri": "kirri.wav", + "Kisleth": "kisleth.wav", + "Knelt": "knelt.wav", + "Knight-Corporal": "knight_corporal.wav", + "Knight-Lieutenant": "knight_lieutenant.wav", + "Knight-Major": "knight_major.wav", + "Knight-Sergeant": "knight_sergeant.wav", + "Knighthand": "knighthand.wav", + "Knighthood": "knighthood.wav", + "Knowin": "knowin.wav", + "Kodan": "kodan.wav", + "Kor": "kor.wav", + "Kor-Roth": "kor_roth.wav", + "Kordan": "kordan.wav", + "Koreth": "koreth.wav", + "Korin": "korin.wav", + "Kraelheimgar": "kraelheimgar.wav", + "Kraven": "kraven.wav", + "Kris": "kris.wav", + "Krisleth": "krisleth.wav", + "Kronlin": "kronlin.wav", + "Kudah": "kudah.wav", + "Kuerana": "kuerana.wav", + "Kunah": "kunah.wav", + "Kwenal": "kwenal.wav", + "Kyfurn": "kyfurn.wav", + "Kylic": "kylic.wav", + "Ladell": "ladell.wav", + "Laird": "laird.wav", + "Leng": "leng.wav", + "Lesik": "lesik.wav", + "Lightbinger": "lightbinger.wav", + "Lightbrigner": "lightbrigner.wav", + "Lightbringer": "lightbringer.wav", + "Lightbringers": "lightbringers.wav", + "Lightrbinger": "lightrbinger.wav", + "Liu": "liu.wav", + "Lon": "lon.wav", + "Lon-Ell": "lon_ell.wav", + "Longsword": "longsword.wav", + "Lordship": "lordship.wav", + "Lumisha": "lumisha.wav", + "Lyceum": "lyceum.wav", + "Macabress": "macabress.wav", + "Madam": "madam.wav", + "Magician": "magician.wav", + "Magister": "magister.wav", + "Magistry": "magistry.wav", + "Magorian": "magorian.wav", + "Majesties": "majesties.wav", + "Maldrood": "maldrood.wav", + "Malrood": "malrood.wav", + "Manchu": "manchu.wav", + "Marches": "marches.wav", + "Marlee": "marlee.wav", + "Masta": "masta.wav", + "Matriarch": "matriarch.wav", + "Matriarchs": "matriarchs.wav", + "Meknathar": "meknathar.wav", + "Menthal": "menthal.wav", + "Ming": "ming.wav", + "Minotaur": "minotaur.wav", + "Minotaurs": "minotaurs.wav", + "Mister": "mister.wav", + "Misty": "misty.wav", + "Mithral": "mithral.wav", + "Mithrin": "mithrin.wav", + "Mitral": "mitral.wav", + "Mmmm": "mmmm.wav", + "Moans": "moans.wav", + "Molgol": "molgol.wav", + "Monarchy": "monarchy.wav", + "Morther": "morther.wav", + "Motioning": "motioning.wav", + "Mustaches": "mustaches.wav", + "Mutters": "mutters.wav", + "Mylee": "mylee.wav", + "Nahzim": "nahzim.wav", + "Nefaleem": "nefaleem.wav", + "Nestor": "nestor.wav", + "Nesven": "nesven.wav", + "Neverthoughtidseeyouprancingaroundwithabunchofelfgirls": "neverthoughtidseeyouprancingaroundwithabunchofelfgirls.wav", + "Nijel": "nijel.wav", + "Nik": "nik.wav", + "Nimbly": "nimbly.wav", + "Nimgalad": "nimgalad.wav", + "Nirvana": "nirvana.wav", + "Noivebeenhereandtherelookingformykinrumoredtodwellhereinthisforest": "noivebeenhereandtherelookingformykinrumoredtodwellhereinthisforest.wav", + "Nollon": "nollon.wav", + "Nomadic": "nomadic.wav", + "Nook": "nook.wav", + "Nurn": "nurn.wav", + "Nym": "nym.wav", + "Oakheart": "oakheart.wav", + "Oakleaf": "oakleaf.wav", + "Odie": "odie.wav", + "Odo": "odo.wav", + "Ododrian": "ododrian.wav", + "Odoiran": "odoiran.wav", + "Odorain": "odorain.wav", + "Odoriain": "odoriain.wav", + "Odorian": "odorian.wav", + "Odorians": "odorians.wav", + "Ody": "ody.wav", + "Off-Worlder": "off_worlder.wav", + "Ogrin": "ogrin.wav", + "Olde": "olde.wav", + "Onas": "onas.wav", + "Ooo": "ooo.wav", + "Oorian": "oorian.wav", + "Oranoc": "oranoc.wav", + "Orbs": "orbs.wav", + "Orehand": "orehand.wav", + "Orgrin": "orgrin.wav", + "Orin": "orin.wav", + "Orkosh": "orkosh.wav", + "Oroset": "oroset.wav", + "Orson": "orson.wav", + "Oslagil": "oslagil.wav", + "Overlord": "overlord.wav", + "Paladin": "paladin.wav", + "Paladin-King": "paladin_king.wav", + "Patriarch": "patriarch.wav", + "Patriarchs": "patriarchs.wav", + "Penance": "penance.wav", + "Penelope": "penelope.wav", + "Periwinkle": "periwinkle.wav", + "Pilgrim": "pilgrim.wav", + "Pinnacle": "pinnacle.wav", + "Pricilla": "pricilla.wav", + "Priestess": "priestess.wav", + "Primer": "primer.wav", + "Priscilla": "priscilla.wav", + "Prologue": "prologue.wav", + "Prudent": "prudent.wav", + "Quartzhand": "quartzhand.wav", + "Racah": "racah.wav", + "Rachelle": "rachelle.wav", + "Radiant": "radiant.wav", + "Rah'Zi": "rah_zi.wav", + "Rasheer": "rasheer.wav", + "Raslan": "raslan.wav", + "Ravenburg": "ravenburg.wav", + "Ravenhill": "ravenhill.wav", + "Ravensburg": "ravensburg.wav", + "Razentia": "razentia.wav", + "Realms": "realms.wav", + "Redhorn": "redhorn.wav", + "Reflexively": "reflexively.wav", + "Reinys": "reinys.wav", + "Retort": "retort.wav", + "Roc": "roc.wav", + "Rockport": "rockport.wav", + "Rolands": "rolands.wav", + "Rolden": "rolden.wav", + "Rooks": "rooks.wav", + "Roth": "roth.wav", + "Rothsholm": "rothsholm.wav", + "Rouge": "rouge.wav", + "Rustigar": "rustigar.wav", + "Sarnel": "sarnel.wav", + "Satyrsdai": "satyrsdai.wav", + "Scaly": "scaly.wav", + "Scepter": "scepter.wav", + "Seagull": "seagull.wav", + "Sedition": "sedition.wav", + "Seeker": "seeker.wav", + "Sehlaba": "sehlaba.wav", + "Seker": "seker.wav", + "Seker-Ankh": "seker_ankh.wav", + "Selna": "selna.wav", + "Senica": "senica.wav", + "Sentinel": "sentinel.wav", + "Septuigen": "septuigen.wav", + "Sergeant-Major": "sergeant_major.wav", + "Serk": "serk.wav", + "Sgt": "sgt.wav", + "Shadeem": "shadeem.wav", + "Shae": "shae.wav", + "Shal": "shal.wav", + "Shalahz": "shalahz.wav", + "Shalaz": "shalaz.wav", + "Shalazah": "shalazah.wav", + "Shambhu": "shambhu.wav", + "Shambu": "shambu.wav", + "Shanay": "shanay.wav", + "Shatterdawn": "shatterdawn.wav", + "Shdeem": "shdeem.wav", + "Shelna": "shelna.wav", + "Shen": "shen.wav", + "Shrouded": "shrouded.wav", + "Shyrra": "shyrra.wav", + "Sigil": "sigil.wav", + "Silverbane": "silverbane.wav", + "Silvernote": "silvernote.wav", + "Silvervein": "silvervein.wav", + "Silverwind": "silverwind.wav", + "Sirjif": "sirjif.wav", + "Sis": "sis.wav", + "Skeptically": "skeptically.wav", + "Slagg": "slagg.wav", + "Slaver": "slaver.wav", + "Slavers": "slavers.wav", + "Slick": "slick.wav", + "Solstice": "solstice.wav", + "Soren": "soren.wav", + "Sorrow": "sorrow.wav", + "Sosa": "sosa.wav", + "Soulseeker": "soulseeker.wav", + "Soulsinger": "soulsinger.wav", + "Sparks": "sparks.wav", + "Spellbooks": "spellbooks.wav", + "Spikehorn": "spikehorn.wav", + "Stairwell": "stairwell.wav", + "Stalker": "stalker.wav", + "Stealthy": "stealthy.wav", + "Steelaxe": "steelaxe.wav", + "Steelclaw": "steelclaw.wav", + "Steelhorn": "steelhorn.wav", + "Steward": "steward.wav", + "Stiletto": "stiletto.wav", + "Stonefirger": "stonefirger.wav", + "Stoneforger": "stoneforger.wav", + "Stonehelm": "stonehelm.wav", + "Stonehold": "stonehold.wav", + "Stoner": "stoner.wav", + "Sunder": "sunder.wav", + "Surly": "surly.wav", + "Swung": "swung.wav", + "Symphonic": "symphonic.wav", + "Ta-Lar": "ta_lar.wav", + "Taeriel": "taeriel.wav", + "Tailor": "tailor.wav", + "Talaer": "talaer.wav", + "Tallspear": "tallspear.wav", + "Targoth": "targoth.wav", + "Tarnen": "tarnen.wav", + "Tathan": "tathan.wav", + "Tavern": "tavern.wav", + "Tellin": "tellin.wav", + "Thane": "thane.wav", + "Thanes": "thanes.wav", + "Theocratic": "theocratic.wav", + "Therak": "therak.wav", + "Therondil": "therondil.wav", + "Thorn": "thorn.wav", + "Thranis": "thranis.wav", + "Throgg": "throgg.wav", + "Thunderstrike": "thunderstrike.wav", + "Tien": "tien.wav", + "Tillborne": "tillborne.wav", + "Tinbreaker": "tinbreaker.wav", + "Tome": "tome.wav", + "Torak": "torak.wav", + "Toren": "toren.wav", + "Torgath": "torgath.wav", + "Torgoth": "torgoth.wav", + "Traitor": "traitor.wav", + "Triesse": "triesse.wav", + "Tumark": "tumark.wav", + "Tumbler": "tumbler.wav", + "Turcan": "turcan.wav", + "Turog": "turog.wav", + "Twinsdai": "twinsdai.wav", + "Twyleen": "twyleen.wav", + "Tyrant": "tyrant.wav", + "Udda": "udda.wav", + "Uhrn": "uhrn.wav", + "Ulagra": "ulagra.wav", + "Ulrik": "ulrik.wav", + "Umbrin": "umbrin.wav", + "Umfray": "umfray.wav", + "Undwin": "undwin.wav", + "Unison": "unison.wav", + "Urhn": "urhn.wav", + "Uryna": "uryna.wav", + "Uust": "uust.wav", + "Vagrant": "vagrant.wav", + "Valdarin": "valdarin.wav", + "Valeth": "valeth.wav", + "Valindar": "valindar.wav", + "Valinor": "valinor.wav", + "Valis": "valis.wav", + "Vanessa": "vanessa.wav", + "Varann": "varann.wav", + "Varsis": "varsis.wav", + "Varu": "varu.wav", + "Vedra": "vedra.wav", + "Velicia": "velicia.wav", + "Velvet": "velvet.wav", + "Vendar": "vendar.wav", + "Venessa": "venessa.wav", + "Vengeance": "vengeance.wav", + "Vermin": "vermin.wav", + "Verness": "verness.wav", + "Verr": "verr.wav", + "Verr-": "verr.wav", + "Verr-Asses": "verr_asses.wav", + "Veya": "veya.wav", + "Viscount": "viscount.wav", + "Vizier": "vizier.wav", + "Vlainor": "vlainor.wav", + "Volan": "volan.wav", + "Volstan": "volstan.wav", + "Vorann": "vorann.wav", + "Vorgak": "vorgak.wav", + "Vorum": "vorum.wav", + "Vuhnalya": "vuhnalya.wav", + "Vyn": "vyn.wav", + "Wallbreaker": "wallbreaker.wav", + "Wanton": "wanton.wav", + "Warfrost": "warfrost.wav", + "Wargog": "wargog.wav", + "Warstar": "warstar.wav", + "Warthog": "warthog.wav", + "Weaving": "weaving.wav", + "Weee": "weee.wav", + "Wettstein": "wettstein.wav", + "Wh": "wh.wav", + "Wha": "wha.wav", + "Whatchya": "whatchya.wav", + "Wheni": "wheni.wav", + "Whitehand": "whitehand.wav", + "Whoah": "whoah.wav", + "Williamsburg": "williamsburg.wav", + "Willowbrook": "willowbrook.wav", + "Windrift": "windrift.wav", + "Windsdai": "windsdai.wav", + "Witchwyrd": "witchwyrd.wav", + "Witchwyrds": "witchwyrds.wav", + "Wolfclaw": "wolfclaw.wav", + "Woodlan": "woodlan.wav", + "Woodland": "woodland.wav", + "Wooo": "wooo.wav", + "Worlder": "worlder.wav", + "Wrath": "wrath.wav", + "Wuzy": "wuzy.wav", + "Wynshorn": "wynshorn.wav", + "Wyren": "wyren.wav", + "Yahnig": "yahnig.wav", + "Yan": "yan.wav", + "Yar": "yar.wav", + "Yer": "yer.wav", + "Yolan": "yolan.wav", + "Yoos": "yoos.wav", + "Yurik": "yurik.wav", + "Zalrek": "zalrek.wav", + "Zeb": "zeb.wav", + "Zelph": "zelph.wav", + "Zha": "zha.wav", + "Zhong": "zhong.wav", + "Zhong-Goo": "zhong_goo.wav", + "Zinger": "zinger.wav", + "Zirak": "zirak.wav", + "Zurn": "zurn.wav", + "Zyzaren": "zyzaren.wav", + "Zyzarn": "zyzarn.wav", + "Zyzren": "zyzren.wav" +} \ No newline at end of file diff --git a/output_proper_nouns/audio_text_for_novel_lightbringer/pronunciation_fixes.json b/output_proper_nouns/audio_text_for_novel_lightbringer/pronunciation_fixes.json new file mode 100644 index 0000000..24a1301 --- /dev/null +++ b/output_proper_nouns/audio_text_for_novel_lightbringer/pronunciation_fixes.json @@ -0,0 +1,20 @@ +{ + "Anhuil-Elhar": "An-WHEEL AY-Lar", + "Anhuil-Ehlar": "An-WHEEL AY-Lar", + "Aegrir": "Ay-Greer", + "Baras": "BARE-iss", + "Emaleen": "EMMA-lean", + "Eushownava": "You-SHOWN-Eh-Vah", + "Graffel": "Gra-FELL", + "Greathaven": "GREAT-Haven", + "Jaylan": "JAY-Lin", + "Neverthoughtidseeyouprancingaroundwithabunchofelfgirls": "Never thought I'd see you prancing around with a bunch of elf girls", + "Nijel": "NYE-jell", + "Noivebeenhereandtherelookingformykinrumoredtodwellhereinthisforest": "No I've been here and there looking for my kin rumored to dwell here in this forest", + "Odoiran": "Oh-DORIAN", + "Ody": "Oh-Dee", + "Seker-Ankh": "Seker-Ahnk", + "Rasheer": "Raw-SHEAR", + "Valinor": "Vala-nor", + "Varsis": "Ver-Asis" +} \ No newline at end of file