Categories
Uncategorized

Mac OS X Text to Speech

I recently worked on a project that required making audio files out of text files, which is something I’ve done before, but haven’t done regularly since 2000 or so when I was making cassette tapes of web pages. There’s a simple way to do this using Mac OS X.

Keyboard System Preferences

Open you System Preferences and go to Keyboard and select the Keyboard Shortcuts pane. Click on Services and scroll down to Text until you see Add to iTunes as a Spoken Track and check that box.

TextEdit

Now open TextEdit and select some text and control-click (or right click depending on your computer input device) and you’ll see a contextual menu item for Add to iTunes as a Spoken Track. Select it.

iTunes

Now jump over to iTunes and you’ll see the track. It’ll be called Text to Speech.

M4A audio file

In iTunes you can highlight your track and select the File menu and then Show in Finder (or just hit command-R) and the Finder will open the folder containing your file. It’s an MPEG-4 Audio file (also known as an AAC file) with an m4a extension.

ITunes can obviously convert the file to an MP3 for you, but if you want another format (like OGG) you can use Audacity. You should be able to do whatever you need to do with it from there, (And that whatever you need to do with it bit was the deciding factor for this specific project.)

I was really hoping to use an existing test-to-speech API on the web to automatically generate the audio. Google has an unofficial Text-To-Speech API (go on, try it.) Seeing as it’s “unofficial” and didn’t work in the way I wanted to use it, and there is an awesome group where people ask about APIs and ToS and no one answers, I skipped it.

AT&T also has a great text to speech demo online, which clearly spells out how you can’t use it, which is quite helpful. (Basically you can’t use it for anything public or commercial, which sucks, but I’m glad they come right out and say it.)

There are other options (almost all commercial) including services like iSpeech, which I may look into. There may be some open source text to speech options, but as to how good they are, or how easy they are to get up and running, that is yet to be seen… or heard, as it were.

(Note: I’ve got a follow-up post coming about Mac OS X Text to Speech via the command line.. stay tuned!)

Categories
Uncategorized

I Googled Apple

I Googled Apple

I swear I won’t use the word “evil” or “conspiracy” in this post, but…

This seems weird to me. I used Google to search for “Apple, Inc.” and I got a search result for “www.apple.com” with the title showing “Apple Computer, Inc.”

Now, as you know, “Apple Computer, Inc.” recently changed it’s name to “Apple Inc.” so I wasn’t sure why Google showed it as “Apple Computer, Inc.” I then went to www.apple.com and the title of the page is just “Apple” not even “Apple Inc.”

So that begs the question… What’s up? If they indexed the page the same as they index every other site on the web, why does it not match? Is Apple feeding a different result to the Googlebot? (A quick test with Perl’s LWP::UserAgent says probably not.) So really… what’s going on? I’d like to know…

Categories
Uncategorized

OpenID – Your Identity

OpenID

I often feel like most of the people I deal with don’t care much about their identity online and who controls it. Plenty of people are fine handing it over to Google, Apple, Microsoft or another large company instead of having some say in it themselves. I’m going to show you a simple method of gaining just a little bit of control back… it’s called delegation.

When I first signed up with an OpenID provider many years ago, I wasn’t exactly happy about giving my identity to someone else, but I didn’t want to run my own OpenID server. The solution is to delegate your identity.

Think of delegation like forwarding. You can forward your phone calls, or forward your email, and the people who contact you never need to know what your actual phone number or email address is… they just use what you give them. And if you change your actual phone number or email address, you don’t need to tell everyone about it, as they are using the one that does the forwarding, and that one still works. It’s like DNS… your domain name stays the same (hopefully!) while the IP address can change. Abstraction is a wonderful thing.

So how do we delegate our OpenID? Well… you’re gonna need a web site… Do you have one? Good! If not, go get one… go ahead, we’ll wait. Come back when you have one.

Got a web site? Good!

We’ll also assume you have an OpenID. You probably have one… If you have an account with Google, or Yahoo!, or LiveJournal, or Flickr, or any of these guys… then you have one.

OK, back to your web site (since you have one now!) You basically need to add a bit of code to the head of your home page.

For instance, if you wanted to use Google, it would look something like this:

<meta http-equiv="X-XRDS-Location" content="http://www.google.com/profiles/[USERNAME]" />
<link rel="openid2.provider" href="https://www.google.com/accounts/o8/ud?source=profiles" />
<link rel="openid2.local_id" href="http://www.google.com/profiles/[USERNAME]" />

Where [USERNAME] is your profile username. You can use the Delegateid tool to figure it out. (See their blog post for more info: Delegation Made Easy.)

If your provider supports the old version of OpenID you may have two more lines, which will say openid rather than openid2. Paste them all into place.

Now when you need to login somewhere that allows you to use OpenID, you can just enter your own URL. You don’t have to remember the URL of your Google profile, or your LiveJournal address, or any of that non-memorable stuff. Your URL is your identity.

In the future, as long as you still have your web site, you can use that as your OpenID. If you ever change your OpenID provider, it should just be a simple matter of updating the delegation code and the magic bits will do the right thing… much less painful than changing your actual phone number or email address and having to tell everyone. With delegation, you just update your own site, and let the machines sort it out from there.

Categories
Uncategorized

Google, take a break!

Google is Busy!

To suggest that Google is busy would be an understatement.

You might even suggest that if they have their fingers in a lot of different things, that they are some multi-armed, thousand-fingered monster, trying to take over and control the entire web…

But I’m sure that’s not the case…

Happy Browsing!

Categories
Uncategorized

Chrome Web Store… Evil?

Google’s got something new planned… it’s the Chrome Web Store! There’s a nice description at Mashable with a well-produced video. (Google seems to be working hard at creating well-produced videos, filled with people you really want to trust… are they actors? Real Google employees? Real Actors Google has hired as employees?)

Evil-o-Meter

So this new Chrome Web Store, or “App Store” as it were, seems to be a way for people to “sell” applications to Chrome users. To be fair, you can also make your app available for free. As for the paid part, well gosh, they aren’t that evil because they take a smaller cut than Apple does with their app store. Make no mistake, Apple’s App Store is evil, so even if you’re less evil than the guy who is more evil… you’re still evil!

Apple’s App Store is evil. I won’t deny that… Steve basically says that if you don’t like it, you can build your app as a web site, and use Mobile Safari to access it on your iPhone. That idea may be less evil than the Chrome Web Store, because while Apple suggests you do this, it doesn’t do anything to get into the revenue stream of it, and leave that’s totally up to you to figure out. I also don’t think they suggest you make it work only in Mobile Safari…

So here are some questions about the Chrome Web Store…

  • Is it based on open standards?
  • Will it work in all browsers, not just Google Chrome?
  • Can anyone run a competitor to the Chrome Web Store?
  • Does it help keep the web free?
  • Does it help keep the web open?

There is a battle going on… it’s for control of the web. I’m on the side of keeping the web free and open. I can see this fracturing the web, and I don’t like it.

It looks like the Chrome Web Store will also allow for the selling of browser extensions for Chrome. An interesting idea. While Mozilla popularized the idea of Browser extensions, Google wants to come along an monetize it. But don’t worry, they’ll only take a small cut…

Ultimately this makes sense for Google and their Chrome OS, which means to take over everything, because all you’ll need is The (Google) Cloud™ and the Chrome Web Store so you can buy your Google Approved Apps to run in your Google Chrome Browser and OS. But it’s OK, because Google doesn’t believe in lock-in.

This is just one more reason I really don’t care for the Google Chrome web browser… I prefer to stick with a browser created by a non-profit organization that has a similar mission to mine, to promote openness on the web.

P.S. I think Google is a great search engine. They also do other things quite well, but that doesn’t mean I want them to do everything, and I definitely don’t want them to control everything.