Archive for April, 2007

4/25/2007: 12:53 am: RobertLinux, Software

I had been reading about Democracy Player as a cool new platform for Internet TV, so I thought I should check it out. I eventually got it working, but installing software shouldn’t be this hard. The problem is that as software packages get more and more complicated, developers need to rely on a lot of other libraries if they ever want to ship their own product. This is especially true if you are building an application that needs to read a lot of different file formats. Dependency management can be a killer.

In this case, the rpm for Fedora Core 6 has a hard coded dependency on Firefox 1.5.0.8. So, the first step was to download the source RPM, patch the spec file, and build a new binary. After downloading and installing the source rpm, edit the file /usr/src/redhat/SPECS/Democracy.spec to change the lines

BuildRequires:  firefox-devel = %{mozversion}
Requires:       firefox = %{mozversion}

to

BuildRequires:  firefox-devel >= %{mozversion}
Requires:       firefox >= %{mozversion}

This is better than just changing the version number from 1.5.0.8 to 1.5.0.10, since you can then reinstall the Democracy Player rpm even if you later update Firefox.

Before going further, you need to install Pyrex and qt-devel. You should be able to use yum to install these from the standard Fedora repositories. If you don’t install qt-devel, you will get the message:

Package qt-mt was not found in the pkg-config search path.
Perhaps you should add the directory containing `qt-mt.pc'
to the PKG_CONFIG_PATH environment variable
Package 'qt-mt', required by 'avahi-qt3', not found

Then, you need to build a binary rpm. The following command should do the trick:

# rpmbuild -bb /usr/src/redhat/SPECS/Democracy.spec

Near the end of the output you should find a line like the following which will tell you where to find your brand spanking new home made binary rpm:

Wrote: /usr/src/redhat/RPMS/i386/Democracy-0.9.5-1.i386.rpm

Then, install the rpm as usual:

# rpm -Uvh /usr/src/redhat/RPMS/i386/Democracy-0.9.5-1.i386.rpm

It’s worth all the effort, though. Democracy Player is an awesome app.

4/11/2007: 11:56 pm: RobertSoccer, SoccerPhone, Software, Speech, VoiceXML

SoccerPhone is a speech application I wrote about five years ago so I could get live updates on Major League Soccer scores whenever I was away from an Internet connection. I wrote the application in VoiceXML, JavaScript, and Python. Since SoccerPhone gathers the live data by scraping information from the HTML scoreboard page on the MLS website, I often have to update my code when the MLS website changes each year. Fortunately, this year’s change was fairly minor.

  1. Call 1-877-33-VOCAL (877-338-6225)
  2. When asked for your PIN, enter or say 5425 (5425 = KICK)
  3. When asked for your userid, enter or say 6575425 (6575425 = MLSKICK)
  4. After you hear me say “Welcome to SoccerPhone”, you can say an MLS
    team name, such as “Houston Dynamo”, or say “all teams”.

Since SoccerPhone lets you request this week’s match results for a team by saying the team’s name, I also have to update the GRXML grammars when new teams are added. While I could dynamically generate grammars from the team names that the app extracts from the MLS website, it’s not that big of a deal to manually maintain the grammars. Also, manually coding them allows me to tune the gramars for better recognition rates.

If you’ve call the app before, you’ll be disappointed to hear that I am using the same lame voice talent, i.e., me. On the good side, though, I re-recorded a bunch of the prompts using Audacity. I also eliminated a little more of the TTS by adding additional recordings. I really should take advantage of the great recording studio we have at Voxify, but then I would feel obligated to use a real voice talent.

I haven’t updated the code at the SoccerPhone SourceForge project site, yet. But I will get to that soon. I got sidetracked by looking into converting the CVS repository to Subversion.