[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

IRC log of me & Gareth Watts -- good/important stuff




[19:32] <Darxus> ah, figured you'd be here :)
[19:32] <xeno42> hi!
[19:32] <xeno42> heheh.. Was just thinking of sending you a message to say that ;-)
[19:33] <xeno42> That second message was really just me thinking aloud btw...
[19:33] <xeno42> it's 00:33 here so it may not make sense
[19:37] <Darxus> heh
[19:37] <Darxus> all I
[19:38] <Darxus> all i wanted was something that would feed stuff dumped to /dev/speech through a speech synthesizer
[19:38] <Darxus> the socket stuff & prioritization is stuff others wanted, but which I consider less important
[19:40] <xeno42> mmm.. well, the problem is if you want /dev/speech to be able to accept commands as well as just speech then you need some way for it to know what is speech and was is a command...
[19:40] <xeno42> As soon as you do that, you rule out doing `cat myfile >/dev/speech`
[19:40] <Darxus> yeah, so it would have to go through the socket connection 
[19:41] <Darxus> I'm also not that worried about doing commands :)
[19:41] <xeno42> However, there's nothing to stop you writing a "speak" program and then doing `cat myfile | speak`
[19:41] <xeno42> The speak program can then worry about the commands to send to /dev/speech
[19:42] <Darxus> nah, that complicates the /dev/speech thing... I like the extreem simplicity of just being able to write stuff to /dev/speech & have it spoken
[19:43] <xeno42> but if you embed the word subtitution stuff into /dev/speech then you'd want some way of turning it off and on I'd have thought
[19:43] <Darxus> yeah, I'd want to be able to turn it on & off via command line options
[19:45] <xeno42> but, if you feed say a source file into /dev/speech you'd want it read literally, whereas if you fed a chat transcript you'd want brb, iirc, etc to be "translated"
[19:45] <xeno42> you'd have to kill and restart speechd to change the command line options
[19:46] <Darxus> I figured it'd work to just leave word substitution on for everything...
[19:47] <xeno42> I think if you were going to do it, you'd at least want the "capacity" to add these commands... like the option to switch voice or whatever... 
[19:47] <xeno42> piping into a speak program is as easy as redirecting into /dev/speech after all
[19:48] <Darxus> yeah, which is why I think that creating a socket/command interface would be a good thing... just not my highest priority
[19:48] <Darxus> I think /dev/speech should always just accept all text, and speak it literally (with word substitution, if enabled)
[19:48] <xeno42> something which needs to be designed in at the start though, even if it has no commands else you'll have to restructure it all later and you'll break scripts that rely on it as it is
[19:48] <Darxus> and at some point create a socket interface that allows you to interactively change voices/inflection/word substitution/etc
[19:49] <xeno42> well you could have two sockets open.. no reason why not
[19:49] <xeno42>  /dev/speech and /dev/speech_adv for instance
[19:50] <Darxus> hmm... your wording seems to back up a belief that I had that kyle disagreed with....
[19:50] <Darxus> you know we're currently implementing /dev/speech as a fifo ?
[19:50] <Darxus> root@darxus:/dev$ file hdb18
[19:50] <Darxus> hdb18: block special (3/82)
[19:50] <Darxus> root@darxus:/dev$ file speech
[19:50] <Darxus> speech: fifo (named pipe)
[19:51] <Darxus> how would we create it as... something more efficient ?  would it actually be considered a socket ?  
[19:51] <xeno42> yuck... don't do that.. use a UNIX socket instead
[19:51] <Darxus> that's what I figured, but I dunno how :)
[19:52] <xeno42> you'd only be able to get one simultaneous connection with a fifo, which defeats the object of it..
[19:52] <xeno42> Perl to the rescue.. :-)
[19:52] <Darxus> yeah, I know, that's why it currently misses some stuff
[19:53] <Darxus> any objection to me posting a log of this to the speech list ?
[19:53] <xeno42> I've no objection... how many are on the list now?
[19:54] <Darxus> haven't gotten the people hosting the list to give me a password to access it, so I can't tell :/
[19:54] <xeno42> :-(  Should have said; I could have hosted it on omnipotent.net
[19:55] <Darxus> what kinda machine / connection is omnipotent.net ?
[19:55] <Darxus> with its current size, we could move the list
[19:55] <xeno42> P2/300 on a 2Mbit link
[19:55] <Darxus> not more than a dozen, I'd guess, but it's possible we've picked up a bunch of lurkers
[19:56] <xeno42> My personal machine to play with ;-)
[19:56] <Darxus> are you running an MLM on there already ?
[19:56] <xeno42> Yep.. several lists running on it
[19:56] <Darxus> yeah, this machine's online 24/7, but I can't get a cablemodem or adsl line here, and I can't afford anything else
[19:56] <Darxus> what's the MLM ?
[19:57] <xeno42> ezmlm
[19:57] <xeno42> based on qmail
[19:57] <Darxus> hmm, not familiar w/ it
[19:57] <xeno42> bloody good.. trust me.. :-)
[19:57] <Darxus> cool
[19:57] <Darxus> so you gonna fix speechd to use sockets ?  :)
[19:58] <xeno42> I could spend some time tommorow having a crack at it if you like :-)
[19:59] <Darxus> yup :)
[19:59] <xeno42> brb; I'll set up this list now 
[19:59] <Darxus> eh...
[19:59] <Darxus> ask the opinion of others on the list 1st
[20:01] <xeno42> s'okay.. it's setup anyhow.. use if if you want, else it can rust :-)
[20:01] <Darxus> okay, gonna post to the list then...
[20:02] <xeno42> just need to send a message to speech-subscribe@lists.omnipotent.net to subscribe
[20:02] <Darxus> alright
[20:04] <Darxus> what OS is omnipotent.net running ?
[20:05] <xeno42> Linux
[20:05] <Darxus> version/distrobution ?
[20:05] <xeno42> Slackware .. 2.0.34 
[20:09] <Darxus> would you like to host CVS as well ?
[20:10] <xeno42> I could do.. I have cvs installed and setup, but I haven't used it for a little while
[20:10] <xeno42> not really necessary at the moment though is it
[20:11] <Darxus> that's cool... nothingbut.net (who is currently hosting our list) also has a CVS repository set up for us
[20:12] <xeno42> ah.. well, should the project get to a point where it'd be useful then setting it up isn't difficult
[20:13] <Darxus> there are several people who are of the opinion that having CVS now is important
[20:13] <xeno42> For a single perl file??
[20:14] <Darxus> heh, no, for all the other stuff we want to get started :)
[20:15] <xeno42> ah... heheh.. yeah if you're working on a largish C project with >3 people contributing then it can be useful..
[20:15] <Darxus> we just used perl to get something working as soon as possible
[20:18] <Darxus> we have always wanted to port it to C, and we do have >3 people working on this stuff
[20:18] <xeno42> Don't really see the point of porting something like that to C ... Perl does the complicated bits for you and as it's a daemon it's not going to get killed/restarted again and again, which is where Perl slips up with its startup time cost

[20:18] <Darxus> hmm, you don't think the whole socket/command interface thing would benifit at all from being ported to a low level language ?
[20:19] <xeno42> nup. there's not a performance issue at stake and it's a whole lot easier to debug and make additions to a perl program than it is to a C equivilent
[20:20] <Darxus> heh... cool 
[20:20] <xeno42> Don't see the point of creating unnecessary difficulties for yourself :-)
[20:20] <Darxus> I hope that when I post this log to the list, that point is discussed by others who have expressed contrary opinions :)
[20:21] <Darxus> perl has been particularly sweet for this stuff
[20:21] <Darxus> I mean, I added speech support for a slashdot ticker w/ a bout 5 lines of code :)
[20:21] <xeno42> Perl is lovely for a great many things
[20:21] <Darxus> (it had been written in perl)
[20:21] <Darxus> I suppose I really should get O'Reily's perl book :)
[20:22] <xeno42> Just a question of selecting the best tool for the job... I use C for lots of things too if performance/size is an issue
[20:23] <xeno42> The cammel book is useful to have sitting around, though perhaps 85% of it is the same as the man pages
[20:23] <Darxus> still think I should get it... I expect to be using it a lot
[20:23] <xeno42> it's definitely easier to look stuff up in the book than it is in a man page
[20:24] <Darxus> so other than switching /dev/speech from a fifo to a socket, what else do you want to see before offloading some of ircspeak to speechd ?  
[20:25] <xeno42> ircspeak really doesn't do that much so there isn't a great deal to offload
[20:26] <Darxus> yeah, I just want it to happen :)
[20:26] <xeno42> yep.. I'll write something to tinker with tommorow and we can play with it from there
[20:27] <Darxus> my biggest concern has been the fact that speechd omits some stuff when lines are written in rapid succession, and I figured that switching it to a socket would fix that... but kyle was telling me that he believed I was mistaken in thinki
ng that files could be sockets
[20:28] <Darxus> kyle was (I think) under the impression that you'd need to create a kernel module to create a proper (non-fifo) device
[20:30] <xeno42> UNIX sockets can be associated with a file in the file system...
[20:30] <Darxus> yeah, I thought I remembered something like that.... like, I read it somewhere once and thought "hmm, that's very cool and could be useful" and stored it...
[20:31] <Darxus> is that documented in the camel book ?
[20:31] <xeno42> do a `man perlipc` and search for "Unix-Domain TCP Clients and Servers"
[20:31] <Darxus> cool :)
[20:31] <xeno42> you can't do a `cat myfile >mysocket`
[20:32] <Darxus> ?
[20:32] <xeno42> the filename is just a reference to the socket, if you see what I mean
[20:32] <Darxus> I think... like...
[20:32] <Darxus> you can't cat to a socket, because a socket isn't a file
[20:33] <Darxus> but you can have a file pointing to a socket so that you *can* cat to it
[20:33] <xeno42> A socket is a two way communications device
[20:33] <xeno42> Internet sockets will let you communicate over a network.  Unix sockets are local to the machine you are using (and are much faster)
[20:34] <xeno42> all quite different from a named pipe (fifo) that you're using at the moment
[20:35] <Darxus> yeah, I understand the concepts... I use internet sockets in speechd to communicate w/ festival
[20:35] <Darxus> just didn't know how to implement what I wanted
[20:35] <Darxus> hell, I had no idea how to even do it w/ a fifo
[20:36] <xeno42> Well, at least Perl makes most of this stuff quite straightforward... it's a bit trickier in C
[20:37] <Darxus> yeah, ntropy started attempting some of this stuff in C... sounded painful :)
[20:43] <xeno42> Anyhow, I'll have some thoughts on it tommorow and drop you another email...
[20:43] <xeno42> I'm off to get a little sleep :-)


__________________________________________________________________
PGP fingerprint = 03 5B 9B A0 16 33 91 2F  A5 77 BC EE 43 71 98 D4
            darxus@op.net / http://www.op.net/~darxus
                        You do not exist.


--
To unsubscribe, send a message with the word 'unsubscribe' in the subject
or body of your message to speech-request@lists.nothinbut.net