p-groarke / wsay

Windows "say"
BSD 3-Clause "New" or "Revised" License
141 stars 11 forks source link

radio effects #27

Closed IvanScheers closed 4 months ago

IvanScheers commented 5 months ago

Hi,

Not really an issue, but maybe an idea for taking wsay to the next level.

I'm working on a voice addon for a space sim. I coded a SAPI TTS to wav in Nim (nim-lang.org) and was relying on sox (Swiss Army Knife of Audio Processins) to play it. In my research to port my SAPI TTS code to c++, I stumbled upon wsay. My God, it does more than I expected and some more ;-).

fxradio However, I believe the --fxradio could do with enhancement. Radio comms effect is more than distortion and noise, actually I think it's more about which frequencies of the voice are passed. I use a bandpass filter to alter the voice itself, to give it a more tinny character. That is what mainly happens, remember talking on an old phone (I'm old enough... alas). So I'd like to request to use --fxrado 7 8 9 (unused now) to just use 3 different bandpass filters, to get different radio qualities. Maybe chuck the noise you use for 1 - 6 and add a switch --noise, so the user can determine voice quality and noise level... The interference you introduced in the voice itself is excellent. However, most if not all developers of sim audio addons are bright enough to use an audio channel for radio static noise.

I don't imply you didn't do a magnificent job, if it feels like that I apologize. I just think you've made a great piece of software, that will become better and better.

pitch While I'm at it, it's awesome wsay detected every voice available. I added voices in the past with a hack, but every time Windows did an update, the extra voices disappeared. Your wsay found them all ! However, because Microsoft always chucked them when updating, I used pitch and speed to differentiate and mimic more speakers. The same voice can sound quite different if one plays with speed and pitch. So implementing pitch in addition to speed (which is available in wsay), people with only a handful of voices on their system could tweak them to have 'virtually' more.

You've made an awesome tool : thank you !

p-groarke commented 5 months ago

Hi @IvanScheers , glad you find it useful.

First the easy answer : --pitch, yes. Unless there's some sort of technical blocker I'll add it next time I update.

Yes I intended to add bandpass to radiofx all along. I simply had way too much going on with 1.6 so I stopped where I'm at (distortion + sampling rate reduction (with folding) + bitcrushing + white noise). I definitely plan on adding bandpass to the system (might experiment with notch filters as well). That's why the--fxradio option use numbers, so I can easily add more without changing old effects.

However, I want to make it clear radio is really just for fun. I won't be doing full-on fancy HF/RF simulation stuff. I'll probably add a few more effects next time I play with wsay and call it a day.

I didn't think about noise being redundant, so thanks for mentioning. ~I don't want to complicate things by adding even more options, but I'll make sure there's a good selection of effects without whitenoise πŸ‘~ I just realized you are probably using the lib 🀣 I think you are the first person to do so! I'll definitely add a noise param then, I'll also keep it mind when creating new effects.

Take care, no promises on if and when any of this ships of course ;)

IvanScheers commented 5 months ago

Hi,

Thanks for taking time to reply and taking note of my remarks. Bandpass radio effects without noise would come in handy. My project is a speech addon for an historical space sim (so no sci-fi).

I implemented my own 'radio noise' to start just before and end a bit after the actual speech, simulating starting and stopping the transmission. I do go with TTS to wav, because then the wav audio processing can determine how much time a sentence takes. This allows for correct timing. like in countdowns etc..

So I'll keep an eye out for updates of wsay.

Kind regards, Ivan

On Thu, 28 Mar 2024 at 02:26, p-groarke @.***> wrote:

Hi @IvanScheers https://github.com/IvanScheers , glad you find it useful.

First the easy answer : --pitch, yes. Unless there's some sort of technical blocker I'll add it next time I update.

Yes I intended to add bandpass to radiofx all along. I simply had way too much going on with 1.6 so I stopped where I'm at (distortion + sample reduction (with folding) + bitcrushing + white noise). I definitely plan on adding bandpass to the system (might experiment with notch filters as well). That's why the--fxradio option use numbers, so I can easily add more without changing old effects.

However, I want to make it clear radio is really just for fun. I won't be doing full-on fancy HF/RF simulation stuff. I'll probably add a few more effects next time I play with wsay and call it a day.

I didn't think about noise being redundant, so thanks for mentioning. I don't want to complicate things by adding even more options, but I'll make sure there's a good selection of effects without whitenoise πŸ‘ I just realized you are actually using the lib 🀣 I think you are the first person to do so! I'll definitely add a noise param then, I'll also keep it mind when creating new effects.

Take care, no promises on if and when any of this ships of course ;)

β€” Reply to this email directly, view it on GitHub https://github.com/p-groarke/wsay/issues/27#issuecomment-2024236908, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASQMO4MWSMERWLDMK4QLGJ3Y2NWSLAVCNFSM6AAAAABFLRQZVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMRUGIZTMOJQHA . You are receiving this because you were mentioned.Message ID: @.***>

p-groarke commented 4 months ago

@IvanScheers 1.6.1 is out with --pitch.

IvanScheers commented 4 months ago

Thanks a lot !

I'm opening up another issue I encountered today while implementing to use wsay.exe in my project.

p-groarke commented 4 months ago

@IvanScheers Hey Ivan, here's a custom build of the next version. It has --fxradio_nonoise to disable whitenoise. No band-pass fancyness though ;)

Take care, hope this integrates better with your scenario.

wsay-v1.6.2-prerelease.zip

IvanScheers commented 4 months ago

Hi,

Sorry didn't reply sooner, I was on the road for 2 days.

Thanks, I just checked it out, great! I also noticed you added an adjustable paragraph pause.

It's nice to use wsay and have all installed voices available, instead of just those reported using the standard SAPI SDK calls. Combined with the pitch you added, it allows for really differentiating between CAPCOM and crew.

Wsay combined with miniaudio allowed me to create a separate program which I can pipe commands into, to play sounds and do TTS. It gives the project extra possibilities and makes it easier to maintain.

Ivan

On Sat, 6 Apr 2024 at 19:14, p-groarke @.***> wrote:

@IvanScheers https://github.com/IvanScheers Hey Ivan, here's a custom build of the next version. It has --fxradio_nonoise to disable whitenoise. No band-pass fancyness though ;)

Take care, hope this integrates better with your scenario.

wsay-v1.6.2-prerelease.zip https://github.com/p-groarke/wsay/files/14894573/wsay-v1.6.2-prerelease.zip

β€” Reply to this email directly, view it on GitHub https://github.com/p-groarke/wsay/issues/27#issuecomment-2041156778, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASQMO4K3CV5GFHYCWOL32QLY4A3OTAVCNFSM6AAAAABFLRQZVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBRGE2TMNZXHA . You are receiving this because you were mentioned.Message ID: @.***>

p-groarke commented 4 months ago

@IvanScheers 1.6.2 has been released with both nonoise and filters on the effects pre-existing effects (as originally intended).

Your project sounds cool, hope this helps. Good day!

IvanScheers commented 4 months ago

Hi Philippe,

Thanks, I'll check it out later today. Curious for the filter effect.

Ivan

On Tue, 16 Apr 2024 at 05:58, p-groarke @.***> wrote:

@IvanScheers https://github.com/IvanScheers 1.6.2 https://github.com/p-groarke/wsay/releases/tag/1.6.2 has been released with both nonoise and filters on the effects pre-existing effects (as originally intended).

Your project sounds cool, hope this helps. Good day!

β€” Reply to this email directly, view it on GitHub https://github.com/p-groarke/wsay/issues/27#issuecomment-2058183705, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASQMO4IY7XZKMDE6VQEDYRLY5SOW7AVCNFSM6AAAAABFLRQZVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJYGE4DGNZQGU . You are receiving this because you were mentioned.Message ID: @.***>

IvanScheers commented 3 months ago

Hi Philippe,

Thanks again for updating/upgrading wsay. It's a great tool for what I'm doing.

There's one peculiar issue. In my test version, with everything local to my exe everything worked like a charm. Now that the speech & sound module is completely rewritten from using MS SAPI, and then Sox ( https://sourceforge.net/projects/sox/) to apply filters, I moved this module over to Codeblocks. After further editing of my code wsay suddenly stopped working. It gave exit code -1073740791.

According to chatGPT: "An exit code of -1073740791 in Windows typically corresponds to the hexadecimal value 0xC0000409, which indicates an "Unknown Exception" or "STATUS_STACK_BUFFER_OVERRUN".

Testing further, I found that it only happens when starting wsay from a subfolder (in the user %AppData% folder) I was intending to use in release versions. The idea is to have my main program run in a working directory with subfolders like bin, data, sound, etc.

Running it from the command line I got this :

*C:\Users\Ivan\AppData\LocalLow\Icarus\ReVoice\bin>wsay "test"Couldn't detect default audio device, using first.Please report this so I can improve default device detection, ty!C:\Users\Ivan\AppData\LocalLow\Icarus\ReVoice\bin>wsay -l1 : Microsoft Hazel Desktop - English (Great Britain)2 : Microsoft David Desktop - English (United States)3 : Microsoft Zira Desktop - English (United States)4 : Microsoft James - English (Australia)5 : Microsoft Catherine - English (Australia)6 : Microsoft Linda - English (Canada)7 : Microsoft Richard - English (Canada)8 : Microsoft George - English (United Kingdom)9 : Microsoft Hazel - English (United Kingdom)10 : Microsoft Susan - English (United Kingdom)11 : Microsoft Sean - English (Ireland)12 : Microsoft David

So it may be Windows related, maybe it doesn't like executables being there ? Anyway I can work around that and place wsay.exe in "Program Files" or a bin folder in the user's home directory and use that AppData subfolder as a working directory. However, in the long run, for compability and a clean setup it might be better to have wsay in that AppData/../ReVoice/bin folder.

Kind Regards, Ivan

P.S. Your name is spelled the French way, which makes me wonder whether you are from a French speaking country?

On Tue, 16 Apr 2024 at 09:40, Ivan Scheers @.***> wrote:

Hi Philippe,

Thanks, I'll check it out later today. Curious for the filter effect.

Ivan

On Tue, 16 Apr 2024 at 05:58, p-groarke @.***> wrote:

@IvanScheers https://github.com/IvanScheers 1.6.2 https://github.com/p-groarke/wsay/releases/tag/1.6.2 has been released with both nonoise and filters on the effects pre-existing effects (as originally intended).

Your project sounds cool, hope this helps. Good day!

β€” Reply to this email directly, view it on GitHub https://github.com/p-groarke/wsay/issues/27#issuecomment-2058183705, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASQMO4IY7XZKMDE6VQEDYRLY5SOW7AVCNFSM6AAAAABFLRQZVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJYGE4DGNZQGU . You are receiving this because you were mentioned.Message ID: @.***>

p-groarke commented 3 months ago

@IvanScheers Haha yes I'm french canadian :)

Looks like a bug with the audio device detection, thx for reporting it! I'm a bit busy these days, I'll get to it as soon as I can. In the meantime, you could try -p all to bypass this detection of your audio device. Or specify the audio device manually in -p.

I moved your report to a new issue to track it : https://github.com/p-groarke/wsay/issues/32

Might ping you for more details if I can't repro, cheers!

IvanScheers commented 3 months ago

Bonjour Philippe,

I'd like to add that a copy of wsay.exe, launched from C:\Users\Ivan\Develop\Icarus\bin\ works just fine. The copy (checked with Linux cmp to be the same) in C:\Users\Ivan\AppData\LocalLow\Wilhelmsen Studios\ReEntry\Addons\Icarus\icaSpeech\bin\ results in the issue. It's peculiar that the path from which it gets launched makes a difference.

Kind regards, Ivan

Op do 16 mei 2024 17:32 schreef p-groarke @.***>:

@IvanScheers https://github.com/IvanScheers Haha yes I'm french canadian :)

Looks like a bug with the audio device detection, thx for reporting it! I'm a bit busy these days, I'll get to it as soon as I can. In the meantime, you could try -p all to bypass this detection of your audio device. Or specify the audio device manually in -p.

I moved your report to a new issue to track it : #32 https://github.com/p-groarke/wsay/issues/32

Might ping you for more details if I can't repro, cheers!

β€” Reply to this email directly, view it on GitHub https://github.com/p-groarke/wsay/issues/27#issuecomment-2115559680, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASQMO4MT6FPLQ3YXCUMLMN3ZCTGPHAVCNFSM6AAAAABFLRQZVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJVGU2TSNRYGA . You are receiving this because you were mentioned.Message ID: @.***>