FlightControl-Master / MOOSE

Mission Object Oriented Scripting Environment (MOOSE) for lua mission scripting design in DCS World
http://flightcontrol-master.github.io/MOOSE/
GNU General Public License v3.0
290 stars 94 forks source link

AWACS Alpha (0.0.18) Discussion #1715

Closed Applevangelist closed 2 years ago

Applevangelist commented 2 years ago

Discussion AWACS Alpha 0.0.2

Applevangelist commented 2 years ago

image Cadence sounds better in TTS with All stations, Magic. Picture. 3 groups. Theres a comma rather than the period after 'stations' that makes the sentence more natural.

Actually mostly I generate 2 texts, one for the screen and one for TTS. In TTS the dots work better for natural speech, readability on screen output is not that good however. And yeah, need to redo the old BRA calls to systematically fit. Must say however that windows TTS outputs 321° nicely as 3 2 1

Applevangelist commented 2 years ago

Most of the commentary should be resolved next time around

DesignsOAK commented 2 years ago

Does AWACS:_StartIntel(awacs) effectively delay call outs until the AWACS arrives at its assigned orbit zone? I still would like to delay the AWACS calling sunrise from the ground.

Also, the SRS implementation is a bit different than MOOSE's STTS.TextToSpeech - really need a control parameter for the STTS volume (the default full volume is way too loud). Thanks for adding the Google TTS credentials, but parameter #5 does not seems to be accepting the Google TTS voice (example: "en-GB-Wavenet-F"). Has anyone else got Goggle TTS to work?

One more - does AI-AWACS inherit INTEL? Is it possible to filter out certain target types, like helos below a given altitude for example?

"Rowdy"

Applevangelist commented 2 years ago

The sunrise call is delayed until we reach 10k feet. I‘m using Moose MSRS, need to check if there’s a volume option, too. The parameters are handed to the SRS tts component exe in the SRS basefolder, so whatever parameter is there should be available/ can be made available. It doesn’t accept all voices if I read the command line output correctly. Something that needs setting within google? Helos are filtered by default ATM indeed

Applevangelist commented 2 years ago

Also, the SRS implementation is a bit different than MOOSE's STTS.TextToSpeech - really need a control parameter for the STTS volume (the default full volume is way too loud). Thanks for adding the Google TTS credentials, but parameter #5 does not seems to be accepting the Google TTS voice (example: "en-GB-Wavenet-F"). Has anyone else got Goggle TTS to work?

-- Reading up on Google, and trying the command line interface of DCS-SR-ExternalAudio.exe, I had to add grpc_csharp_ext.x64.dll to the SRS directory to make it work

thebgpikester commented 2 years ago

Minor point on Bullseye again, its correct for the miles most times but one of the functions reads out the miles with a leading zero which makes the number read out as zero-six-nine (069). I've seen both versions used so much be multiple methods going on. Drives my ears wild when hearing "zero-four-five, zerosix-nine miles" instead of the more often "zero-four-five, sixety-nine miles" Its not used in the standard BRA or bulleye used, I heard it early on. I think its the picture call out; image EDIT: Its definitely in the PICTURE call.

Magic calls out pictures before sunrise :)

Magic used words Bee-Arrr-Ayyy instead of "BRAH"

Magic still uses the group size before bullseye on nearly all callouts. eg. image

thebgpikester commented 2 years ago

FEATURE request: GCI control without awacs as a physical plane.

Not everyone has one, the UK has awacs envy, I think we are "in between purchases" :P I dont think anything needs to change from the process side.

thebgpikester commented 2 years ago

Feature request text on/off toggle

Yes i know its excellent for debugging, but I wanna actually have a go!

thebgpikester commented 2 years ago

FEATURE request documentation

I think the FEZ/OPSZone/Bullseye thing is too hard to comprehend its usage. Its a combined thing, custom bullseye, it doesnt use the bullseye from the DCS Mission, It has a large circular zone for which not sure what that does and a smaller polygon zone, in red, which seems "serious" but is also not understandable. There is also the defensive zone. 1) Whats the circle of the opszone? Detection? call outs? Pictures? engagements? 2) Whats the FEZ? For engagements? Outside is ignored? Anything else special happen if an enemy is in it? 3) Why is the bullseye coupled to this? Why do you have to have the bullseye in the middle of the FEZ? What can't have the bullseye elsewhere and uncoupled from this zone? 4) Defensive zone. Seems like its a trigger for something to happen, but its not explained what exactly? If something enters that, what happens? 5) These polygon zones can they have more than 10 points?

I think these answers would go a long way to help someone know how to setup the class

thebgpikester commented 2 years ago

DEFECT: Magic will answer a check in when he is dead :) Although this might be useful for having GCI only missions there shoudl be some detection that AWACS is alive. Perhaps a function that allows it to speak?

function AWACSisOnDuty() --is it alive, airborne, over 10000ft high return true else return false end

if AWACSisOnDuty() then TTS("im talking because im at work")

EDIT, check in and out works for player but actually after checking out, with a dead awacs I didnt get th emenu check in back.

DesignsOAK commented 2 years ago

The sunrise call is delayed until we reach 10k feet.

Correct, but the AWACS should not be making any picture/threat calls before "Sunrise" and it is still doing so while on the ground. Pike's AWACSisOnDuty() check may do the trick. Just a thought. - Rowdy

DesignsOAK commented 2 years ago

DEFECT: on first 2 picture calls the AWACS points out 2 groups: image

However, the voice version of this says "Olympus one one two zero, ninety eight miles" and then "Olympus one two three six, eighty miles". Note the 4 digit bearings. - Rowdy

Applevangelist commented 2 years ago

As I predicted everyone totally gets hung up on the callouts ;)

Applevangelist commented 2 years ago

"zero-four-five, zerosix-nine miles" fixed Magic used words Bee-Arrr-Ayyy instead of "BRAH" depends on google vs win I think. The Win version says "brah" on "BRA", Google spells that out... interesting

Applevangelist commented 2 years ago

The sunrise call is delayed until we reach 10k feet.

Correct, but the AWACS should not be making any picture/threat calls before "Sunrise" and it is still doing so while on the ground. Pike's AWACSisOnDuty() check may do the trick. Just a thought. - Rowdy

Fixed

Applevangelist commented 2 years ago

DEFECT: on first 2 picture calls the AWACS points out 2 groups: image

However, the voice version of this says "Olympus one one two zero, ninety eight miles" and then "Olympus one two three six, eighty miles". Note the 4 digit bearings. - Rowdy

fixed next round

Applevangelist commented 2 years ago

Feature request text on/off toggle

Yes i know its excellent for debugging, but I wanna actually have a go!

Done next time, you get a function for that

Applevangelist commented 2 years ago

FEATURE request: GCI control without awacs as a physical plane.

Not everyone has one, the UK has awacs envy, I think we are "in between purchases" :P I dont think anything needs to change from the process side.

Maybe

Applevangelist commented 2 years ago

FEATURE request documentation

I think the FEZ/OPSZone/Bullseye thing is too hard to comprehend its usage. Its a combined thing, custom bullseye, it doesnt use the bullseye from the DCS Mission, It has a large circular zone for which not sure what that does and a smaller polygon zone, in red, which seems "serious" but is also not understandable. There is also the defensive zone.

1. Whats the circle of the opszone? Detection? call outs? Pictures? engagements?

2. Whats the FEZ? For engagements? Outside is ignored? Anything else special happen if an enemy is in it?

3. Why is the bullseye coupled to this? Why do you have to have the bullseye in the middle of the FEZ? What can't have the bullseye elsewhere and uncoupled from this zone?

4. Defensive zone. Seems like its a trigger for something to happen, but its not explained what exactly? If something enters that, what happens?

5. These polygon zones can they have more than 10 points?

I think these answers would go a long way to help someone know how to setup the class

It does use the BE from the mission editor. Initially you only need to worry about a) FEZ b) move the blue/red BE around c) where the AWACS should be orbiting and d) where to put the 1st station for the CAP flights. Maybe e) name your reference.

Applevangelist commented 2 years ago

DEFECT: on first 2 picture calls the AWACS points out 2 groups: image

However, the voice version of this says "Olympus one one two zero, ninety eight miles" and then "Olympus one two three six, eighty miles". Note the 4 digit bearings. - Rowdy

fixed

dMARLAN commented 2 years ago

The work on this stuff is awesome. This is going to be absolutey huge for the DCS community.

Few more comments! I know it probably feels very nit picky but intercept control is luckily something that is public release and it could be modeled mostly like the real world (with some exceptions for DCSisms)!

"New group" isn't a thing real world, in Broadcast Control they are just "Group" and don't have specific labels as every call made in broadcast control is a new picture and all groups are "new" in each call. Once a fighter takes a commit they would become labeled (e.g. 'Single Group', 'Lead Group', etc.) using the phonetic language to label groups (Alpha Group, Bravo Group) is a fantastic idea. Of course not used real world but for a DCS AI solution that is perfect.

"Singleton" isn't a thing, that would fall under a "fill in" as a number of contacts. e.g. "Darkstar. Group. Bullseye 090, 98, 25 thousand, cap, two contacts." ('one contact' = 'single contact')

"miles" isn't included in the call, all ranges are in nautical miles and don't need to be stated. However I am assuming this is for user customization that prefer kilometers. I'd personally suggest having a AWACS Info menu option which would display things such as the measurement system, or other things such as threat range, etc. without needing it stated in all broadcasts.

Almost all calls requires the full core information (there are some exceptions)

of Groups, Group Location (BRAA or Bullseye Reference: Bearing, Range, Altitude, Aspect/Track Direction), Declaration and any applicable fill ins

To summarize: Broadcast Control, Bullseye Format (before commit): "Darkstar. 2 groups. Group. Olympus 090, 98, 25 thousand, track west, hostile. Group. Olympus 180, 50, 30 thousand, track east, hostile."

Tactical Control, Bullseye Format (commit - outside defined meld range) "Darkstar. 2 groups. Alpha Group. Olympus 090, 98, 25 thousand, track west, hostile. Bravo Group. Olympus 180, 50, 30 thousand, track east, hostile."

Tactical Control, BRAA Format (commit - inside defined meld range) "Darkstar. 2 groups. Alpha Group. BRAA 360, 35, 25 thousand, hot, hostile. Bravo Group. Olympus 300, 30, 30 thousand, hot, hostile."

Applevangelist commented 2 years ago

"new group" is just a player helper for heads up, correct, as is miles. Is called once when a new cluster is detected. Else it's just group. Labelling and "Singleton" courtesy Pikey :) Miles is just making the callout more understandable for DCS users; not everyone is/was a pro-pilot and a lot aren't even native speakers. Maybe something for a even more brief option. BRAA calls are made if a player requests bogey dope, and on meld, tac, threat calls as they go to specific friendlies.

thebgpikester commented 2 years ago

You can drop singleton as its 'implied' like hot, to save space. That's cool, it was an old function but yes.

The cadence of the callouts is fast and being computerised its not quite spot on with all the pauses, so the clues like "miles" are more like helpers although its a reasonable ask to get these closer and omit, I think you would have to try it out, my concern is we turn this into unintelligible garbage if we miss adding helper clues, but am willing to try :) The thing is, they condensed this entire thing over the years, its much shorter now than twenty years ago and shorter even than 40 years where they would have used miles, so there is a definite "dating" that can be attributed.

Labels make no sense unless the call is anchored, in DCS no sense can be made of multiple groups working together in range or azimuth because multiple groups of AI dont work together. So the Picture has to have some give and take in order to be workable hence the weird labelling of a rotating alphabet to give them a character and an arbitrary listing of the nearest three groups to awacs. It's a sacrifice, as soon as we can generate AI tactics in formations of champagnes and boxes and such we can make callouts of 2 groups range 10 south group blah blah...

The order is still wrong though, the group size is leading the bullseye call in the pictue, it should be a filler at the end. ANd the older function with th eleading zero is used for miles in pictures, that's wrong, other than that there's compromise.

You can use this as a reference for the speed and content but this is a labelled two group east-west fight https://drive.google.com/file/d/0BwUQri1lYjQ8eUk3MncxTG1pWXc/view?usp=sharing&resourcekey=0-P6h_tFQnjAWMex6JKjbVZQ

There's defintie space to remove and simplify, just have to maintain the intelligibility with the AI voice.

thebgpikester commented 2 years ago

As I predicted everyone totally gets hung up on the callouts ;)

You have absolutely no idea what is about to be unleashed and you will thank your lucky stars that you got a chance to tighten it up because when you get hit by 2000 armchair Tom Cruises wanting to fix something, its gonna be painful. This is the sharp end of nerd city!

Applevangelist commented 2 years ago

Lol. Absolutely. I feel I have already 2 nerds on me … sizing of groups has been moved around. Need to drop the singleton still

thebgpikester commented 2 years ago

still miles called as digits in one of the picture fuctions. Google not working out of the box, still searching for the solution. I think patrol "replacement" and GCI could be thought about now this is quite far down the line. Still think non AWACS and Non fighter squadron version is important. Looking good!

Applevangelist commented 2 years ago

still miles called as digits in one of the picture fuctions. -- yes, if using Desktop TTS. Google not working out of the box, still searching for the solution. -- resolved now, right? I think patrol "replacement" and -- AI patrols will be replaced GCI could be thought about now this is quite far down the line. -- still MAYBE ;) Still think non AWACS and Non fighter squadron version is important. -- which would be GCI? Looking good! -- thanks

thebgpikester commented 2 years ago

still miles called as digits in one of the picture fuctions. -- yes, if using Desktop TTS. Now I tried Google I see the issue. Google voice does the right miles and it actually sounds better But she does start the degrees: 045 as Oh-four-five rather than zero four five. So i get there are issues here. The cadence is MUCH better in the waveform picked. It's fast and clear.

Feedback on the voices.

Pretty awesome immersion factor when you have the different voices talking. It's a definite "wow factor". I was thinking about cheap ways to build on this. Perhaps you can get the callsigns from the group and use that as a hash value to slightly alter the voices? I saw you did something like this with the nationalities, i.e. the French plane had French voice. Maybe each callsign can get enumerated at startup and the speed and nationality and sex can be randiomised? It might end up even more awesome if that were possible

Applevangelist commented 2 years ago

Currently it’s a list of 10 voices which are randomly taken; French guy in the mirage is luck ;)

Applevangelist commented 2 years ago

Oh and the uk voice says oh five two, a us one will say zero five two

thebgpikester commented 2 years ago

Bon chance! So, small one again on zones. image Reference this image, if you overlap the big green circle from the centre of the FEZ with the FEZ polyzone, the pair of Flankers do not get picked up until inside the circular zone, not the FEZ, which wasnt my expectations, I thought It would be

  1. Inside the AWACS unit detection, but outside the rejection zone first.
  2. Inside the FEZ regardless
  3. Inside the defense zone.

I'm still unsure how these zones are supposed to work, they dont really make sense to my brain at least.

Applevangelist commented 2 years ago

When they are inside the radar zone or inside the red ops zone, they should be picked as targets. I'll cross-check that as a test. Forget about the radar zone and the zone around the AIC, these are "internal use"

thebgpikester commented 2 years ago

The second they crossed that green circular line, she offered "New group..." The Flanker gorup out westr really dont often get picked up. But the Blindfires tend to get followed for a long time. Coincidence?

Applevangelist commented 2 years ago

Not really. I haven't made the FEZ bigger than my radar circle, so I left out a check on the FEZ for the immediate announcement of new contacts, also need to check INTEL on the acceptzone setup I made. Good hint!