openvibers/openvibe.live Commits

Public AI text drops sentences about a face, body or clothes the word lists do not name (teeth and a beard, outerwear, outdoor gear); the 3 clip lines left after #299 are rewritten at boot (#300)

OP OpenVibers committed 22 days ago · dd12097de1 · 2 files, +10 −1

Changes

ddiff --git a/server/db/database.js b/server/db/database.js
iindex fcbe8745..ce85a837 100644
---- a/server/db/database.js
++++ b/server/db/database.js
@@@ -447,7 +447,12 @@ const _GENDERED_MANY = new RegExp(`\\b(two|three|four|five|several|some|the|both
const _GENDER_ADJ = /\b(?:(?:a|an)\s+)?(?:male|female)\s+(?:or|and|\/)\s+(?:male|female)\s+|\b(?:male|female)\s+(?=(?:hosts?|streamers?|players?|speakers?|presenters?|gamers?|voices?|narrators?|commentators?|figures?|characters?|broadcasters?|viewers?|individuals?|persons?|people)\b)/gi;
// What is left of a sentence about someone's hair, clothes or body ("a person adjusts their hair or clothing near the
// counter") cannot be repaired word by word: the sentence goes.
--const _GROOMING = /\b(?:their|his|her)\s+(?:own\s+)?(?:hair|beard|face|makeup|clothing|clothes|outfit|appearance|body|figure|looks)\b/i;
++const _GROOMING = new RegExp('\\b(?:(?:their|his|her)\\s+(?:own\\s+)?(?:hair|beard|face|makeup|clothing|clothes|outfit|appearance|body|figure|looks)'
++ // The face and body described ("smiling broadly, displaying white teeth and a beard") and clothes the word lists do
++ // not name ("blue outerwear", "in outdoor gear"): the sentence goes. Things a person holds or reviews (headphones, a
++ // headset on a desk) are not here.
++ + '|beards?|mustaches?|moustaches?|teeth|grin(?:s|ning)?|smil(?:e|es|ing)\\s+(?:broadly|widely|warmly|at)|freckles|complexion|wrinkles'
++ + '|hairstyles?|haircuts?|outerwear|(?:in|wearing)\\s+(?:[\\w-]+\\s+){0,2}gear|face\\s+shields?)\\b', 'i');
function _noGender(text) {
return text.split(/("[^"]*"?|“[^”]*”?)/).map((part, i) => (i % 2 ? part : part
.replace(_GENDER_ADJ, (m) => (/^an?\s/i.test(m) ? m.slice(0, m.indexOf(' ') + 1) : ''))
ddiff --git a/test/ai-text-no-looks.test.js b/test/ai-text-no-looks.test.js
iindex 71e465aa..d9074510 100644
---- a/test/ai-text-no-looks.test.js
++++ b/test/ai-text-no-looks.test.js
@@@ -56,6 +56,10 @@ const db = require('../server/db/database');
['A home kitchen where a person adjusts their hair or clothing near the counter. A pot of soup simmers on the stove.', 'A pot of soup simmers on the stove.'],
['A female streamer and two guys race karts; the other men cheer.', 'A streamer and two people race karts; the other people cheer.'],
['An Iron Man skin fights Pac-Man in a man-made arena while chat says "that man is cracked".', 'An Iron Man skin fights Pac-Man in a man-made arena while chat says "that man is cracked".'],
++ // The face, body and clothes the word lists do not name (production card lines after #299): the sentence goes.
++ ['A person in outdoor gear with a helmet and face shield is looking off to the side. A second person leans into the frame from the left.', 'A second person leans into the frame from the left.'],
++ ['The video features close-up shots of the streamer smiling broadly, displaying white teeth and a beard. The chat cheers.', 'The chat cheers.'],
++ ['The streamer packs camera gear into a bag.', 'The streamer packs camera gear into a bag.'],
];
let off = 0;
// Public memory text is the observation alone: the raw transcript clause stays for the AI's context, never shown.