Чё я нахуй сделал

This commit is contained in:
Jabak
2024-09-19 23:32:44 +03:00
parent 690e3c3256
commit da070eb023
5 changed files with 995 additions and 24 deletions

View File

@@ -1,4 +1,5 @@
using Content.Shared.Access.Components;
using System.Linq;
using Content.Shared._White.TTS;
using Content.Shared.Containers.ItemSlots;
using Content.Shared.Movement.Components;
using Content.Shared.Movement.Systems;
@@ -7,6 +8,8 @@ using Content.Shared.PowerCell.Components;
using Content.Shared.Silicons.Borgs.Components;
using Content.Shared.Wires;
using Robust.Shared.Containers;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
namespace Content.Shared.Silicons.Borgs;
@@ -30,10 +33,21 @@ public abstract partial class SharedBorgSystem : EntitySystem
SubscribeLocalEvent<BorgChassisComponent, EntInsertedIntoContainerMessage>(OnInserted);
SubscribeLocalEvent<BorgChassisComponent, EntRemovedFromContainerMessage>(OnRemoved);
SubscribeLocalEvent<BorgChassisComponent, RefreshMovementSpeedModifiersEvent>(OnRefreshMovementSpeedModifiers);
SubscribeLocalEvent<SharedTTSComponent, ComponentStartup>(RandomTTS);
InitializeRelay();
}
private void RandomTTS(EntityUid uid, SharedTTSComponent component, ComponentStartup args)
{
if (TryComp<BorgChassisComponent>(uid, out var borgChassis) && borgChassis.Initialized)
{
var voices = IoCManager.Resolve<IPrototypeManager>().EnumeratePrototypes<TTSBorgVoicePrototype>().ToList();
var voice = IoCManager.Resolve<IRobustRandom>().Pick(voices);
component.VoicePrototypeId = voice.ID;
}
}
private void OnItemSlotInsertAttempt(EntityUid uid, BorgChassisComponent component, ref ItemSlotInsertAttemptEvent args)
{
if (args.Cancelled)

View File

@@ -34,3 +34,25 @@ public sealed class TTSVoicePrototype : IPrototype
[DataField]
public bool BorgVoice { get; }
}
[Prototype("ttsBorgVoice")]
public sealed class TTSBorgVoicePrototype : IPrototype
{
[IdDataField]
public string ID { get; } = default!;
[DataField]
public string Name { get; } = string.Empty;
[DataField(required: true)]
public Sex Sex { get; }
[ViewVariables(VVAccess.ReadWrite), DataField(required: true)]
public string Speaker { get; } = string.Empty;
/// <summary>
/// Whether the species is available "at round start" (In the character editor)
/// </summary>
[DataField]
public bool RoundStart { get; } = true;
}

View File

@@ -128,12 +128,7 @@
- Flashed
- type: TypingIndicator
proto: robot
- type: Speech
speechVerb: Robotic
speechSounds: Borg
- type: Vocal
sounds:
Unsexed: UnisexSilicon
- type: TTS
- type: UnblockableSpeech
- type: FootstepModifier
footstepSoundCollection:
@@ -282,10 +277,6 @@
- Syndicate
- type: ShowSyndicateIcons
- type: MovementAlwaysTouching
- type: Speech
speechSounds: SyndieBorg
- type: Vocal
sounds:
Unsexed: UnisexSiliconSyndicate
- type: TTS
- type: PointLight
color: "#dd200b"

View File

@@ -27,8 +27,6 @@
name: cyborg
- type: Construction
node: cyborg
- type: Speech
speechVerb: Robotic
- type: InteractionPopup
interactSuccessString: petting-success-generic-cyborg
interactFailureString: petting-failure-generic-cyborg
@@ -95,8 +93,6 @@
interactFailureString: petting-failure-salvage-cyborg
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
- type: Speech # WD
speechSounds: BorgUpgraded
- type: entity
id: BorgChassisEngineer
@@ -150,8 +146,6 @@
interactFailureString: petting-failure-engineer-cyborg
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
- type: Speech # WD
speechSounds: BorgUpgraded
- type: entity
id: BorgChassisJanitor
@@ -213,8 +207,6 @@
interactFailureString: petting-failure-janitor-cyborg
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
- type: Speech # WD
speechSounds: BorgUpgraded
- type: entity
id: BorgChassisMedical
@@ -289,8 +281,6 @@
interactFailureString: petting-failure-medical-cyborg
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
- type: Speech # WD
speechSounds: BorgUpgraded
- type: entity
id: BorgChassisService
@@ -344,8 +334,6 @@
interactFailureString: petting-failure-service-cyborg
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
- type: Speech # WD
speechSounds: BorgUpgraded
- type: entity
id: BorgChassisSyndicateAssault

View File

@@ -0,0 +1,956 @@
- type: ttsBorgVoice
id: Aidar
name: tts-voice-name-aidar
sex: Male
speaker: aidar
- type: ttsBorgVoice
id: Eugene
name: tts-voice-name-eugene
sex: Male
speaker: eugene
- type: ttsBorgVoice
id: Baya
name: tts-voice-name-baya
sex: Female
speaker: baya
- type: ttsBorgVoice
id: Kseniya
name: tts-voice-name-kseniya
sex: Female
speaker: kseniya
- type: ttsBorgVoice
id: Xenia
name: tts-voice-name-xenia
sex: Female
speaker: xenia
- type: ttsBorgVoice
id: Charlotte
name: tts-voice-name-charlotte
sex: Female
speaker: charlotte
- type: ttsBorgVoice
id: Bebey
name: tts-voice-name-bebey
sex: Male
speaker: bebey
- type: ttsBorgVoice
id: Biden
name: tts-voice-name-biden
sex: Male
speaker: biden
#- type: ttsBorgVoice
# id: Ddr2
# name: tts-voice-name-ddr2
# sex: Male
# speaker: ddr2
- type: ttsBorgVoice
id: Papa
name: tts-voice-name-papa
sex: Male
speaker: papa
- type: ttsBorgVoice
id: Mykyta
name: tts-voice-name-mykyta
sex: Male
speaker: mykyta
- type: ttsBorgVoice
id: Glados
name: tts-voice-name-glados
sex: Female
speaker: glados
roundStart: false
- type: ttsBorgVoice
id: Sentrybot
name: tts-voice-name-sentrybot
sex: Male
speaker: sentrybot
roundStart: false
borgVoice: true
- type: ttsBorgVoice
id: Mana
name: tts-voice-name-mana
sex: Female
speaker: mana
- type: ttsBorgVoice
id: Soldier
name: tts-voice-name-soldier
sex: Male
speaker: soldier
- type: ttsBorgVoice
id: Planya
name: tts-voice-name-planya
sex: Female
speaker: planya
- type: ttsBorgVoice
id: Amina
name: tts-voice-name-amina
sex: Female
speaker: amina
- type: ttsBorgVoice
id: AdventureCore
name: tts-voice-name-adventure-core
sex: Male
speaker: adventure_core
roundStart: false
borgVoice: true
- type: ttsBorgVoice
id: SpaceCore
name: tts-voice-name-space-core
sex: Male
speaker: space_core
roundStart: false
borgVoice: true
- type: ttsBorgVoice
id: FactCore
name: tts-voice-name-fact-core
sex: Male
speaker: fact_core
roundStart: false
borgVoice: true
- type: ttsBorgVoice
id: Kleiner
name: tts-voice-name-kleiner
sex: Male
speaker: kleiner
- type: ttsBorgVoice
id: Dbkn
name: tts-voice-name-dbkn
sex: Male
speaker: dbkn
- type: ttsBorgVoice
id: Neco
name: tts-voice-name-neco
sex: Female
speaker: neco
- type: ttsBorgVoice
id: Gman
name: tts-voice-name-gman
sex: Male
speaker: gman
- type: ttsBorgVoice
id: Obama
name: tts-voice-name-obama
sex: Male
speaker: obama
- type: ttsBorgVoice
id: Trump
name: tts-voice-name-trump
sex: Male
speaker: trump
- type: ttsBorgVoice
id: Briman
name: tts-voice-name-briman
sex: Male
speaker: briman
- type: ttsBorgVoice
id: FatherGrigori
name: tts-voice-name-father-grigori
sex: Male
speaker: father_grigori
- type: ttsBorgVoice
id: Vance
name: tts-voice-name-vance
sex: Male
speaker: vance
- type: ttsBorgVoice
id: Barni
name: tts-voice-name-barni
sex: Male
speaker: barni
- type: ttsBorgVoice
id: Alyx
name: tts-voice-name-alyx
sex: Female
speaker: alyx
- type: ttsBorgVoice
id: Mossman
name: tts-voice-name-mossman
sex: Female
speaker: mossman
- type: ttsBorgVoice
id: Bandit
name: tts-voice-name-bandit
sex: Male
speaker: bandit
- type: ttsBorgVoice
id: Geralt
name: tts-voice-name-geralt
sex: Male
speaker: geralt
- type: ttsBorgVoice
id: Triss
name: tts-voice-name-triss
sex: Female
speaker: triss
- type: ttsBorgVoice
id: KodlakWhiteMane
name: tts-voice-name-kodlak-white-mane
sex: Male
speaker: kodlakwhitemane
- type: ttsBorgVoice
id: Cicero
name: tts-voice-name-cicero
sex: Male
speaker: cicero
- type: ttsBorgVoice
id: Sheogorath
name: tts-voice-name-sheogorath
sex: Male
speaker: sheogorath
- type: ttsBorgVoice
id: TurretFloor
name: tts-voice-name-turret-floor
sex: Female
speaker: turret_floor
roundStart: false
borgVoice: true
- type: ttsBorgVoice
id: Cirilla
name: tts-voice-name-cirilla
sex: Female
speaker: cirilla
- type: ttsBorgVoice
id: Lambert
name: tts-voice-name-lambert
sex: Male
speaker: lambert
- type: ttsBorgVoice
id: Polina
name: tts-voice-name-polina
sex: Female
speaker: polina
- type: ttsBorgVoice
id: Arthas
name: tts-voice-name-arthas
sex: Male
speaker: arthas
- type: ttsBorgVoice
id: Xrenoid
name: tts-voice-name-xrenoid
sex: Male
speaker: xrenoid
- type: ttsBorgVoice
id: Azir
name: tts-voice-name-azir
sex: Male
speaker: azir
- type: ttsBorgVoice
id: Caitlyn
name: tts-voice-name-caitlyn
sex: Female
speaker: caitlyn
- type: ttsBorgVoice
id: Ekko
name: tts-voice-name-ekko
sex: Male
speaker: ekko
- type: ttsBorgVoice
id: Twitch
name: tts-voice-name-twitch
sex: Male
speaker: twitch
- type: ttsBorgVoice
id: Strelok
name: tts-voice-name-strelok
sex: Male
speaker: strelok
- type: ttsBorgVoice
id: Ziggs
name: tts-voice-name-ziggs
sex: Male
speaker: ziggs
- type: ttsBorgVoice
id: Tracer
name: tts-voice-name-tracer
sex: Female
speaker: tracer
- type: ttsBorgVoice
id: Illidan
name: tts-voice-name-illidan
sex: Male
speaker: illidan
- type: ttsBorgVoice
id: Rexxar
name: tts-voice-name-rexxar
sex: Male
speaker: rexxar
- type: ttsBorgVoice
id: Voljin
name: tts-voice-name-voljin
sex: Male
speaker: voljin
- type: ttsBorgVoice
id: Forester
name: tts-voice-name-forester
sex: Male
speaker: forester
- type: ttsBorgVoice
id: Sidorovich
name: tts-voice-name-sidorovich
sex: Male
speaker: sidorovich
- type: ttsBorgVoice
id: TfEngineer
name: tts-voice-name-tf-engineer
sex: Male
speaker: engineer
- type: ttsBorgVoice
id: TfHeavy
name: tts-voice-name-tf-heavy
sex: Male
speaker: heavy
- type: ttsBorgVoice
id: TfMedic
name: tts-voice-name-tf-medic
sex: Male
speaker: medic
- type: ttsBorgVoice
id: TfSniper
name: tts-voice-name-tf-sniper
sex: Male
speaker: sniper
- type: ttsBorgVoice
id: TfSpy
name: tts-voice-name-tf-spy
sex: Male
speaker: spy
- type: ttsBorgVoice
id: TfDemoman
name: tts-voice-name-tf-demoman
sex: Male
speaker: demoman
- type: ttsBorgVoice
id: Valtos
name: tts-voice-name-valtos
sex: Female
speaker: valtos
- type: ttsBorgVoice
id: Khajiit
name: tts-voice-name-khajiit
sex: Male
speaker: khajiit
- type: ttsBorgVoice
id: Punisher
name: tts-voice-name-punisher
sex: Male
speaker: punisher
- type: ttsBorgVoice
id: Johnny
name: tts-voice-name-johnny
sex: Male
speaker: johnny
- type: ttsBorgVoice
id: Panam
name: tts-voice-name-panam
sex: Female
speaker: panam
- type: ttsBorgVoice
id: Dornan
name: tts-voice-name-dornan
sex: Male
speaker: dornan
- type: ttsBorgVoice
id: VFemale
name: tts-voice-name-v-female
sex: Female
speaker: v_female
- type: ttsBorgVoice
id: OfficerEnclave
name: tts-voice-name-officer-enclave
sex: Male
speaker: officer_enclave
roundStart: false
borgVoice: true
- type: ttsBorgVoice
id: Richardson
name: tts-voice-name-richardson
sex: Male
speaker: richardson
- type: ttsBorgVoice
id: Elenwen
name: tts-voice-name-elenwen
sex: Female
speaker: elenwen
- type: ttsBorgVoice
id: EmperorTit
name: tts-voice-name-emperor-tit
sex: Male
speaker: emperor
- type: ttsBorgVoice
id: GuardSkyrim
name: tts-voice-name-guard-skyrim
sex: Male
speaker: guard
- type: ttsBorgVoice
id: Hagraven
name: tts-voice-name-hagraven
sex: Male
speaker: hagraven
- type: ttsBorgVoice
id: HermaeusMora
name: tts-voice-name-hermaeus-mora
sex: Male
speaker: hermaeus_mora
- type: ttsBorgVoice
id: Nord
name: tts-voice-name-nord
sex: Male
speaker: nord
- type: ttsBorgVoice
id: Ulfric
name: tts-voice-name-ulfric
sex: Male
speaker: ulfric
- type: ttsBorgVoice
id: GoodThalya
name: tts-voice-name-good-thalya
sex: Female
speaker: good_thalya
- type: ttsBorgVoice
id: Cerys
name: tts-voice-name-cerys
sex: Female
speaker: cerys
- type: ttsBorgVoice
id: Judy
name: tts-voice-name-judy
sex: Female
speaker: judy
- type: ttsBorgVoice
id: Mitch
name: tts-voice-name-mitch
sex: Male
speaker: mitch
- type: ttsBorgVoice
id: Skippy
name: tts-voice-name-skippy
sex: Male
speaker: skippy
- type: ttsBorgVoice
id: Butch
name: tts-voice-name-butch
sex: Male
speaker: butch
- type: ttsBorgVoice
id: Marcus
name: tts-voice-name-marcus
sex: Male
speaker: marcus
- type: ttsBorgVoice
id: Sulik
name: tts-voice-name-sulik
sex: Male
speaker: sulik
- type: ttsBorgVoice
id: Astrid
name: tts-voice-name-astrid
sex: Female
speaker: astrid
- type: ttsBorgVoice
id: Maven
name: tts-voice-name-maven
sex: Female
speaker: maven
- type: ttsBorgVoice
id: Nazir
name: tts-voice-name-nazir
sex: Male
speaker: nazir
- type: ttsBorgVoice
id: Jackie
name: tts-voice-name-jackie
sex: Male
speaker: jackie
- type: ttsBorgVoice
id: EvilThalya
name: tts-voice-name-evil-thalya
sex: Female
speaker: evil_thalya
- type: ttsBorgVoice
id: PostalDude
name: tts-voice-name-dude
sex: Male
speaker: dude
- type: ttsBorgVoice
id: Anduin
name: tts-voice-name-anduin
sex: Male
speaker: anduin
- type: ttsBorgVoice
id: Brukan
name: tts-voice-name-brukan
sex: Male
speaker: brukan
- type: ttsBorgVoice
id: Puchkow
name: tts-voice-name-puchkow
sex: Male
speaker: puchkow
- type: ttsBorgVoice
id: Moriarti
name: tts-voice-name-moriarti
sex: Male
speaker: moriarti
- type: ttsBorgVoice
id: NecoArcTwo
name: tts-voice-name-neco-arc-two
sex: Female
speaker: neco_arc_2
- type: ttsBorgVoice
id: AngryNecoArc
name: tts-voice-name-angry-neco-arc
sex: Female
speaker: angry_neco_arc
- type: ttsBorgVoice
id: Squidward
name: tts-voice-name-squidward
sex: Male
speaker: squidward
- type: ttsBorgVoice
id: Garrosh
name: tts-voice-name-garrosh
sex: Male
speaker: garrosh
- type: ttsBorgVoice
id: Jaina
name: tts-voice-name-jaina
sex: Female
speaker: jaina
- type: ttsBorgVoice
id: Adjutant
name: tts-voice-name-adjutant
sex: Female
speaker: adjutant
- type: ttsBorgVoice
id: Hanson
name: tts-voice-name-hanson
sex: Female
speaker: hanson
- type: ttsBorgVoice
id: Bralik
name: tts-voice-name-bralik
sex: Male
speaker: bralik
- type: ttsBorgVoice
id: Horner
name: tts-voice-name-horner
sex: Male
speaker: horner
- type: ttsBorgVoice
id: Villager
name: tts-voice-name-villager
sex: Male
speaker: villager
roundStart: false
- type: ttsBorgVoice
id: AmitTakkar
name: tts-voice-name-amitkakkar
sex: Male
speaker: amitkakkar
- type: ttsBorgVoice
id: EleazarFig
name: tts-voice-name-eleazarfig
sex: Male
speaker: eleazarfig
- type: ttsBorgVoice
id: ErnieLark
name: tts-voice-name-ernielark
sex: Male
speaker: ernielark
- type: ttsBorgVoice
id: IgnatiaFlootravel
name: tts-voice-name-ignatiaflootravel
sex: Female
speaker: ignatiaflootravel
- type: ttsBorgVoice
id: Lodgok
name: tts-voice-name-lodgok
sex: Male
speaker: lodgok
- type: ttsBorgVoice
id: PhineasBlack
name: tts-voice-name-phineasblack
sex: Male
speaker: phineasblack
- type: ttsBorgVoice
id: Ranrak
name: tts-voice-name-ranrak
sex: Male
speaker: ranrak
- type: ttsBorgVoice
id: VictorRookwood
name: tts-voice-name-victorrookwood
sex: Male
speaker: victorrookwood
- type: ttsBorgVoice
id: ZenobiaNoke
name: tts-voice-name-zenobianoke
sex: Female
speaker: zenobianoke
- type: ttsBorgVoice
id: GladwinMoon
name: tts-voice-name-gladwinmoon
sex: Male
speaker: gladwinmoon
- type: ttsBorgVoice
id: MatildaWeasley
name: tts-voice-name-matildaweasley
sex: Female
speaker: matildaweasley
- type: ttsBorgVoice
id: Romka
name: tts-voice-name-romka
sex: Male
speaker: romka
- type: ttsBorgVoice
id: Myron
name: tts-voice-name-myron
sex: Male
speaker: myron
- type: ttsBorgVoice
id: NatsaiOnai
name: tts-voice-name-natsaionai
sex: Female
speaker: natsaionai
- type: ttsBorgVoice
id: OminisGaunt
name: tts-voice-name-ominisgaunt
sex: Male
speaker: ominisgaunt
- type: ttsBorgVoice
id: PoppySweeting
name: tts-voice-name-poppysweeting
sex: Female
speaker: poppysweeting
- type: ttsBorgVoice
id: NarratorD3
name: tts-voice-name-narrator_d3
sex: Male
speaker: narrator_d3
- type: ttsBorgVoice
id: Tosh
name: tts-voice-name-tosh
sex: Male
speaker: tosh
- type: ttsBorgVoice
id: Tychus
name: tts-voice-name-tychus
sex: Male
speaker: tychus
- type: ttsBorgVoice
name: tts-voice-name-boris-petrov
sex: Male
speaker: boris_petrov_father_tb
id: BorisPetrovFatherTb
- type: ttsBorgVoice
name: tts-voice-name-karina-petrova
sex: Female
speaker: karina_petrova_tb
id: KarinaPetrovaTb
- type: ttsBorgVoice
name: tts-voice-name-kate-smirnova
sex: Female
speaker: kate_smirnova_tb
id: KateSmirnovaTb
- type: ttsBorgVoice
name: tts-voice-name-semen-baburin
sex: Male
speaker: semen_baburin_tb
id: SemenBaburinTb
- type: ttsBorgVoice
name: tts-voice-name-tihonov
sex: Male
speaker: tihonov_tb
id: TihonovTb
- type: ttsBorgVoice
name: tts-voice-name-uther
sex: Male
speaker: uther_hs
id: UtherHs
- type: ttsBorgVoice
name: tts-voice-name-female-commander
sex: Female
speaker: female_commander
id: FemaleCommander
- type: ttsBorgVoice
name: tts-voice-name-lord-harkon
sex: Male
speaker: lord_harkon
id: LordHarkon
- type: ttsBorgVoice
name: tts-voice-name-serana
sex: Female
speaker: serana
id: Serana
- type: ttsBorgVoice
name: tts-voice-name-moira-brown
sex: Female
speaker: moira_brown
id: MoiraBrown
- type: ttsBorgVoice
name: tts-voice-name-robert-maccready
sex: Male
speaker: robert_maccready
id: RobertMaccready
- type: ttsBorgVoice
name: tts-voice-name-threedog
sex: Male
speaker: threedog
id: Threedog
- type: ttsBorgVoice
name: tts-voice-name-threedog-radio
sex: Male
speaker: threedog_radio
id: ThreedogRadio
- type: ttsBorgVoice
name: tts-voice-name-generic-goblin-c
sex: Male
speaker: generic_goblin_c
id: GenericGoblinC
- type: ttsBorgVoice
name: tts-voice-name-dinah-hecat
sex: Female
speaker: dinah_hecat
id: DinahHecat
- type: ttsBorgVoice
name: tts-voice-name-aesop-sharp
sex: Male
speaker: aesop_sharp
id: AesopSharp
- type: ttsBorgVoice
name: tts-voice-name-abraham-ronen
sex: Male
speaker: abraham_ronen
id: AbrahamRonen
- type: ttsBorgVoice
name: tts-voice-name-samantha-dale
sex: Female
speaker: samantha_dale
id: SamanthaDale
- type: ttsBorgVoice
name: tts-voice-name-sirona-ryan
sex: Female
speaker: sirona_ryan
id: SironaRyan
- type: ttsBorgVoice
name: tts-voice-name-sophronia-franklin
sex: Female
speaker: sophronia_franklin
id: SophroniaFranklin
- type: ttsBorgVoice
name: tts-voice-name-mister-handy-fl3
sex: Male
speaker: mister_handy_fl3
id: MisterHandyFl3
- type: ttsBorgVoice
name: tts-voice-name-mister-gutsy-fl3
sex: Male
speaker: mister_gutsy_fl3
id: MisterGutsyFl3
- type: ttsBorgVoice
name: tts-voice-name-jericho-fl3
sex: Male
speaker: jericho_fl3
id: JerichoFl3
- type: ttsBorgVoice
name: tts-voice-name-elder-lyons-fl3
sex: Male
speaker: elder_lyons_fl3
id: ElderLyonsFl3
- type: ttsBorgVoice
name: tts-voice-name-sarah-lyons-fl3
sex: Female
speaker: sarah_lyons_fl3
id: SarahLyonsFl3
- type: ttsBorgVoice
name: tts-voice-name-kovir-nobleman
sex: Male
speaker: kovir_nobleman
id: KovirNobleman
- type: ttsBorgVoice
name: tts-voice-name-zoltan-chivay
sex: Male
speaker: zoltan_chivay
id: ZoltanChivay
- type: ttsBorgVoice
name: tts-voice-name-maiko
sex: Female
speaker: maiko
id: Maiko
- type: ttsBorgVoice
name: tts-voice-name-brendan
sex: Male
speaker: brendan
id: Brendan
- type: ttsBorgVoice
name: tts-voice-name-nancy-hartley
sex: Female
speaker: nancy_hartley
id: NancyHartley
- type: ttsBorgVoice
name: tts-voice-name-oswald-forrest
sex: Male
speaker: oswald_forrest
id: OswaldForrest
- type: ttsBorgVoice
name: tts-voice-name-steve
sex: Male
speaker: steve
id: Steve