Follow-up to this thread - this is way more specific, so hopefully worthy of its own thread. I think wildcards are the best option for my skill level (basically none), and have gotten a good chunk of what I wanted to accomplish done with those.

An issue I’ve run into and can’t seem to google my way out is making TTS pronounce acronyms in a sensible way. For example “PACU” (post-anesthesia care unit) is usually vocalized as “pack-you” but my TTS software likes to say things like “pace-uh”. Or “PO” (latin abbreviation for ‘by mouth’) is vocalized by just saying the letters, but TTS says “Poe”. Stuff like that.

When the TTS comes across a capitol letter with a space on either side, it just pronounces the letter, so I’d still lose things like “pack-you” but at least hearing it spell out “pee ay see you” would make sense, vs “pace-uh” which is gibberish and confusing at high playback speeds.

Best I’ve come up with so far is <([A-Z]{2})> on the Find side, but that’s only spotting the two character terms like PO, and ignoring the longer ones… I’d hoped it would see PACU and detect PA, AC, and CU as three distinct sets of two that could cobbled into “P A C U”.

Nothing I’ve done on the Replace side comes close to working. It either does nothing at all, or it’ll do something like turn “PO” into <([A- Z]{2})>. Not sure if preserving the original characters is something A-Z is actually capable of - seems not, but I’m kind of an idiot with stuff like this, so any tips would be appreciated!

Thank you!

  • BearOfaTime
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    28 days ago

    Won’t this just reverse the order of the two groups? (My regex is minimal)

    • unmagical@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      28 days ago

      The parenthetical groups in the search query define what is to be captured. They are numbered from left to right. In this case that is a capital letter assigned to group 1 and then an immediately following capital letter assigned to group 2. If we used a replace of only “\1\2” then we would get no change from the original input. If we want to switch them then we just need to swap the order in the replace “\2\1”.