Welcome Guest ( Log In | Register )

foo_talktome, A remake of foo_tts for text-to-speech title/artist on track change
post Jun 15 2010, 19:58
Post #1

Group: Developer
Posts: 20
Joined: 15-June 10
Member No.: 81538

Hello! I've just finished coding a working version of my first plugin, foo_talktome. I wanted a plugin to read the title and artist of each track that played, because I often listen to music on my wireless headphones. When I listen to my whole library or a group of new albums on random, this helps me remember who/what I liked. Hopefully others will enjoy this too!

Before writing this I checked if it existed already, and I found foo_tts, written by paulski. It seemed development on that had stopped, however, and there were even requests for a new version, so I went ahead with my little project. Hopefully I'm not stepping on any other devs' toes with this!

Download foo_talktome.dll v1.0 here
(or here)
(These links should be up-to-date)

Just put the dll in the Components directory and it should add a menu option (under Playback) to turn it off/on.

Please use the issue tracker on the BitBucket Repo to report bugs/feature requests.

Update! Version 1.0 released May 7, 20122013 (That's a long time between updates.)

Thanks to danthe0 some major unicode-related bugs have been addressed. Now you should be able to get this working with Asian characters/voices. I am also now building with the latest SDK version, so you will need Foobar2000 v1.1 to use this component (sorry! if you need/want an older version please let me know - I may have it). Thanks to everyone who uses this component, and especially those of you who contribute feedback, bug reports, and even code! To celebrate these major changes/improvements, I am bumping the version number to 1.0.

Along with this new version, I am officially announcing the code as open source. The source has been up for a while, but I just realized I never made that announcement here.

Finally, my use of this plugin has diminished, hence the slowdown in development. I know there is another TTS plugin out now, and it seems to have some really cool features. However, I am happy to keep working on this if there is still interest in foo_talktome. I am also interested in helping/working with other developers to create TTS or other interesting Foobar components - just PM me if you'd like to work together on something.

Update! September 7, 2011

Hey everyone. I'm glad people are still getting use out of this plugin! I halted development for a while because things seemed to be working pretty well, but I know there are some serious bugs out there still. In order to keep up with everything, I'd like to move development and issue tracking over to my Bitbucket repository:


There is a public wiki and issue tracker there, and you don't need an account to post on the issue tracker (though it's better if you make one). I've added a few issues/feature requests from this thread to the system there, but I'm sure I missed quite a few. If you have an issue or feature request, please add it on the Bitbucket issue tracker.

This is also my first step toward releasing the source code for this plugin, just so the project can live on even if I become too busy to maintain it. I'm not quite ready to do that, though, as I'm still a bit shy about my coding abilities.

June 22, 2010 - OK, it took some playing around, but the new version seems to be working!

Download foo_talktome v0.4

(Hopefully) Fixed in this version:
* No more dll dependencies, everything should be statically linked (Still figuring out dependency walker, but I hope it's working)
* Remembers the state on shutdown

Thanks again to everyone who has downloaded or shown interest in my plugin! This has been a great learning experience for me so far.

June 28, 2010 - A new version is released!

Download foo_talktome v0.5

New features:
* A preferences pane!
* You decide the speech formatting (uses built-in Foobar2000 title formatting strings)
* An option to pause playback while speaking

I also tried to fix the 0 volume bug that was brought up. I was never able to reproduce it, though, so I'm not sure the changes worked. I've taken note of the other suggestions in this thread (volume fading when speaking, announcing at the end of the song...), and I will try to work on them over time, but implementation of some of them is not quite straightforward to me.

As far as other voices go, you can set the voice in the Windows speech control panel. You can install other voices, but they tend to not be free and/or easy to find. The voice engines from Neospeech have been recommended in this thread (thanks Andreasvb).

July 01, 2010 - Another new version is released!

Download foo_talktome.dll v0.5.1
(I don't know anything about version numbering andI felt I was approaching 1.0 much too quickly so I moved to a double-point system. Why not?)

* Improved volume scaling - this was indeed a linear/logarithmic scale thing (thanks kode54). Sadly the only reason I didn't do it properly the first time around is because I didn't have a pen or pencil handy. I'm pretty happy with the way it is now, but I may add another option to lower/boost the volume of the voice relative to the music if there is a lot of demand.
* Much bigger box for the speech formatting string. Thank carpman for requesting this - I never would have thought of it otherwise. Should accept 2048 characters or so now, hopefully that's big enough.


July 19, 2010

Download foo_talktome.dll v0.6

* Now includes a volume-offset field in the preferences pane. You can use a negative or a positive offset, input in dB.

Hopefully this is helpful for some people.

NOTE: For those of you that keep Foobar set at 0.0dB attenuation (max volume) this will only help you make the TTS voice quieter. At this point I can only control the volume of the synthesized voice. If you want the voice louder relative to the music, try boosting your system volume, lowering your Foobar volume, and adding a positive volume offset in the TalkToMe preferences.

This post has been edited by aganders3: May 8 2013, 15:28
Go to the top of the page
+Quote Post
Start new topic
post Jul 2 2010, 01:22
Post #2

Group: Developer
Posts: 1407
Joined: 27-June 07
Member No.: 44789

Wow, that was fast!
Works for me -- really well. Just out of interest, how have you scaled the TTS voice? Presumably you can't know in advance how loud the TTS voice will be, so how does your plugin decide the ratio?


TAK -p4m :: LossyWAV -q 6 | TAK :: Lame 3.98 -V 2
Go to the top of the page
+Quote Post
post Jul 2 2010, 17:42
Post #3

Group: Developer
Posts: 20
Joined: 15-June 10
Member No.: 81538

QUOTE (carpman @ Jul 1 2010, 19:22) *
Just out of interest, how have you scaled the TTS voice?

I am inverting the dB scale that Foobar uses to get a linear scale of 0-100 (what the TTS voice takes as a volume, only integer values). This is basically the same as how the Foobar volume control works; if you look, the actual dB value falls off much more quickly as you move to the low end.

The equation I use is:
TTS_volume = 100*10^(foobar_volume/20)

which comes from the equation for audio decibels (a relative measure):
dB = 20*log(P/Pref); where I use Pref = 100, the maximum TTS volume.
This gives the TTS voice a volume of 100 when Foobar's attenuation is 0dB, and ~0 when Foobar's attenuation is -100dB. I'm also not doing any rounding (laziness), so a value of (say) 13.94 will just get truncated to 13.

I just tried it at home (using Microsoft Anna on Win7) and it seems a little quiet. It's basically perfect (for me) on my other computer with Neospeech Julie, though, so the voice-dependent thing could work against people. This makes me want to implement another setting to boost/drop the voice a bit, so something like that will probably be in the next release smile.gif I'll play around with it a little to see what method seems to work best for that.

This post has been edited by aganders3: Jul 2 2010, 17:43
Go to the top of the page
+Quote Post
post Jul 3 2010, 01:21
Post #4

Group: Developer
Posts: 1407
Joined: 27-June 07
Member No.: 44789

QUOTE (aganders3 @ Jul 2 2010, 17:42) *
This makes me want to implement another setting to boost/drop the voice a bit, so something like that will probably be in the next release smile.gif I'll play around with it a little to see what method seems to work best for that.

Yes please.

I for one would like more control over the TTS voice volume (though it's pretty good already). But sometimes I want it to be loud (when listening is a background activity) and other times quite quiet (when listening is the only activity).

Control over the TTS volume would make foo_talktome absolutely perfect IMO.

FYI (if it's useful) my fb2k's vol is set to 100%.



ps. Interesting what Andreasvb said re. routing of the TTS voice. My experience was the opposite in that even though my TTS voice is configured to use my soundcard's "M-Audio Delta AP multi" device, fb2k is configured to use "Delta AP 1/2". However changing the Windows settings (i.e. the volume of "M-Audio Delta AP multi") had no effect on the TTS voice in fb2k (or at least I thought it didn't) precisely because (I assumed) the TTS in foo_talktome is routed through the same output device as fb2k ("Delta AP 1/2"). However, what Andreasvb has said seems to contradict my assumption. Can or does, the TTS voice in foo_talktome use a different output device from fb2k?

TAK -p4m :: LossyWAV -q 6 | TAK :: Lame 3.98 -V 2
Go to the top of the page
+Quote Post

Posts in this topic
- aganders3   foo_talktome   Jun 15 2010, 19:58
- - Andreasvb   Thank you for making a TTS component for new fooba...   Jun 16 2010, 01:10
|- - D.Sync   QUOTE (Andreasvb @ Jun 15 2010, 18:10) Th...   Aug 22 2011, 14:40
- - carpman   Hi aganders3 QUOTE Failed to load DLL: foo_talkto...   Jun 16 2010, 01:51
|- - aganders3   QUOTE (carpman @ Jun 15 2010, 19:51) QUOT...   Jun 16 2010, 04:53
|- - aganders3   QUOTE I'll try to build the component again wi...   Jun 16 2010, 16:38
- - Andreasvb   REQ/BUG: Make it remember the state. It's alwa...   Jun 16 2010, 16:45
- - foosion   aganders3: You can a DLL's dependencies using ...   Jun 16 2010, 17:56
- - lvqcl   Downloaded foo_talktome.dll. It wants c:\win...   Jun 16 2010, 18:07
- - aganders3   Thanks everyone. I'm working on getting things...   Jun 16 2010, 19:55
- - aganders3   OK, it took some playing around, but the new versi...   Jun 22 2010, 17:22
- - Andreasvb   Now it remember the state on restart. It's us...   Jun 22 2010, 17:43
|- - aganders3   QUOTE (Andreasvb @ Jun 22 2010, 11:43) No...   Jun 22 2010, 18:37
- - s33m33   Thanks Aganders3. Useful plugin.   Jun 22 2010, 21:54
- - carpman   Hi aganders3 Great that you got it working. W...   Jun 22 2010, 23:53
- - aganders3   A new version is released! Download foo_talkt...   Jun 28 2010, 18:12
- - Andreasvb   Thanks for you continuous work. Finding a good T...   Jun 28 2010, 19:13
- - carpman   aganders3 Absolutely superb! Works really w...   Jun 29 2010, 02:58
- - carpman   Hi aganders3 Enjoying your plugin. I have 2 mo...   Jun 30 2010, 01:16
|- - aganders3   QUOTE (carpman @ Jun 29 2010, 19:16) 1) I...   Jun 30 2010, 20:45
- - carpman   Well, that's extremely cool of you. Thank you....   Jul 1 2010, 00:46
- - kode54   You need to convert decibels to a linear scale. I...   Jul 1 2010, 02:13
- - aganders3   July 01, 2010 - Another new version is released...   Jul 1 2010, 22:49
- - carpman   Wow, that was fast! Works for me -- really wel...   Jul 2 2010, 01:22
|- - aganders3   QUOTE (carpman @ Jul 1 2010, 19:22) Just ...   Jul 2 2010, 17:42
|- - carpman   QUOTE (aganders3 @ Jul 2 2010, 17:42) Thi...   Jul 3 2010, 01:21
- - Andreasvb   Why not just a simple volume slider? Will try the...   Jul 2 2010, 18:15
- - cmyden   Awesome! Thanks a lot aganders3, I've bee...   Jul 2 2010, 18:31
|- - aganders3   QUOTE (cmyden @ Jul 2 2010, 12:31) Unfort...   Jul 2 2010, 19:03
|- - cmyden   QUOTE (aganders3 @ Jul 2 2010, 18:03) QUO...   Jul 3 2010, 00:29
- - Andreasvb   You can set the output for TTS in the SAPI control...   Jul 3 2010, 01:46
|- - carpman   QUOTE (Andreasvb @ Jul 3 2010, 01:46) You...   Jul 3 2010, 02:03
- - aganders3   I'll explore ways to change things, and come u...   Jul 3 2010, 02:58
- - carpman   You could go the WaveGain interface way: Extra G...   Jul 3 2010, 03:17
- - s33m33   aganders3, Could you provide include/exclude feat...   Jul 7 2010, 16:03
|- - aganders3   QUOTE (s33m33 @ Jul 7 2010, 10:03) Could ...   Jul 7 2010, 16:12
- - aganders3   Bump for a new release! Download foo_talktome...   Jul 19 2010, 18:43
- - Andreasvb   It's very quiet for me when it's set to 10...   Jul 19 2010, 19:11
|- - aganders3   QUOTE (Andreasvb @ Jul 19 2010, 13:11) It...   Jul 19 2010, 20:45
- - Andreasvb   Oh, I might've spoke too soon. Seems I've...   Jul 19 2010, 21:24
|- - aganders3   QUOTE (Andreasvb @ Jul 19 2010, 15:24) Se...   Jul 19 2010, 21:40
- - carpman   Thanks aganders3! Works for me. And I'm...   Jul 20 2010, 06:04
- - carpman   Hi aganders3 Possible BUG: Playback stops when f...   Aug 8 2010, 16:59
|- - aganders3   QUOTE (carpman @ Aug 8 2010, 10:59) Playb...   Aug 20 2010, 21:07
- - blonde   Hello, I was excited to try this excellent compon...   Oct 17 2010, 17:28
- - carpman   Is it ticked under: Playback > TalkToMe C.   Oct 17 2010, 18:05
- - blonde   Ack! Thanks! That's what I get for n...   Oct 17 2010, 21:29
- - niceone   Amazing plugin BUT it is too quiet, It can...   Aug 17 2011, 06:25
- - niceone   Talk to me plugin forum: http://www.hydrogenaudio....   Aug 21 2011, 00:33
|- - Andreasvb   QUOTE (niceone @ Aug 21 2011, 01:33) Talk...   Aug 21 2011, 01:33
- - D.Sync   Update: It appears that the file is corrupted. Aft...   Aug 23 2011, 06:48
- - lordfrikk   Is this still working? I don't see any section...   Aug 24 2011, 22:25
- - D.Sync   It should be there on the Playback menu with then ...   Aug 25 2011, 10:15
- - aganders3   Hey everyone. I'm glad people are still gettin...   Aug 25 2011, 17:31
- - lordfrikk   QUOTE (D.Sync @ Aug 25 2011, 10:15) It sh...   Sep 2 2011, 09:16
- - q-stankovic   QUOTE (D.Sync @ Aug 25 2011, 10:15) It sh...   Sep 2 2011, 10:08
- - D.Sync   Kudos to another darkOne skin user. To enable th...   Sep 2 2011, 14:32
- - lordfrikk   Doh, my reading comprehension is still lacking...   Sep 3 2011, 19:41
- - Martin Irigaray   First of all, thanks for this excellent plugin. Bu...   Dec 28 2012, 20:31
|- - jabberwocky_one   QUOTE (Martin Irigaray @ Dec 29 2012, 03...   Dec 29 2012, 14:19
- - nightgaunt   Thanks, aganders3, this is a very handy tool. I ...   Jan 5 2013, 04:45
- - aganders3   Bumping the thread to announce a new version! ...   May 7 2013, 20:38
- - carpman   Well I for one use and like your TTS component ---...   May 7 2013, 21:09
- - Andreasvb   Thank you! I'm using it all the time, as ...   May 7 2013, 21:24
- - carpman   Hi aganders3 Made you the assignee (which is prob...   May 12 2013, 20:32
- - carpman   One more issue posted: "Playback stops on sa...   May 12 2013, 21:47

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:


RSS Lo-Fi Version Time is now: 26th November 2015 - 15:36