Delores: Meowlation

If the words are not generated at random, each od them can be an event with a sample (or multisamples for variety). These would have to be cut tightly, like single words, so when they are played, it resembles a sentence with a rythmic pattern, otherwise it’ll sound just like cat vocalisations which is what happens in the demo above. It sounds like there’s just a sample of cat playing and it’s not related to speech.

1 Like

I don’t know if a rhythmic pattern is a realistic target but yes, in the video it’s just a straight up recording with no relation to much of anything. Just one small part of that recording would be a prr or something.

It shouldn’t be that hard to get a rhythmic pattern related to speech. Fmod would have events related to the length of the word. Short word - play short sample, long word - play longer sample. And these would be multisamples, so the speech would be varied. Fired in sequence, it would be like speech. It would be more complex and certainly time consuming to have samples that are mirroring the text, so that purr is not meow in audio.

Personally though, for such a silly idea I would go with how cat speaks in this cartoon.

1 Like

Yes, you just described exactly what I was thinking about experimenting with, at the very least a bit manually in Audacity to determine what I think of it. If I should decide to proceed, the basic principle would simply be an extension of the meow text generator.

Does it mean that Delores is completely ready for voicing? Adding custom sound bank with proper IDs without additional changes in code is enough to make the game talk?

I think it should be (see _startSayLine) but that’s not quite what I tested. :slight_smile:

1 Like

I didn’t implement any of the talking code in the new engine. You could kludge something up by intercepting _startSayline() but you’d need to continually monitor the playing sound to know when it ended. Talking is something that best to embedded in the engine due to other issues like lip syncing.

2 Likes

I see…

At first sight I thought it is already handled by

	if (SETTING(jibber)) {
		actor._jibber_sid <- playSound(actor?.jibber_sid)
	}

and _doneSayline(actor) but it seems that jibber_sid is just some kind of dummy ID because it does not really identify the line…?

jibber was a failed experiment to add animal crossing like jibbler voice. It was never completed so all the code is not there.

2 Likes

I’ve never played or even seen Animal Crossing so I had to find some video to get some idea what you meant. :blush:

I guess it would have been quite interesting… :slightly_smiling_face:

1 Like