Thursday, October 29, 2009

Converting iPhone Voicemails to Custom Ringtones

Recently, I received a voicemail from a friend that was so endearing that I not only wanted to preserve it, but I wanted to turn it into a custom ringtone and associate it with the Contact for that person.  Unfortunately, the iPhone provides no straightforward mechanism for doing this.


Getting the Audio File
After a bit of time consulting the all-knowing Google, I came to the conclusion that turning the voicemail into a ringtone for my iPhone would be trivial, provided that I could get the voicemail onto my computer as an mp3 file (or any other non-DRM audio format which can be imported into iTunes.) However, getting to that point proved to be a bit tricky. Here are the options that I found:

  1. Jailbreak the iPhone and ssh into it to find the Visual Voicemail audio files. Hmmm, I could probably pull that off, but I'm not liking the idea of getting my iPhone bricked during a future update.
  2. Route an audio cable from the headphone jack on the iPhone to the mic jack on my computer, and record the voicemail directly. Nope, don't have the right cable on hand.
  3. Sign up for a service that will retrieve voicemails and e-mail them to you. Bingo!
To implement option 3, I went with gotvoice.com. It is a subscription service, so it is necessary to provide a credit card number to sign up, but they do offer a free 14-day trial. When subscribing, I had to provide my phone number (duh!) and my voicemail PIN so that the service could access my voicemail, along with an e-mail address.  Once the service planted a test voicemail to verify access I was ready to go, and was able to go onto their website and get my existing voicemails transferred and e-mailed to me as mp3 attachments. Weeee!


Ringtone Conversion
Once I had the mp3 saved to my computer from the e-mail message, it was a simple matter to convert it into a ringtone. First of all, I needed to trim the audio file since GotVoice had added information such as time stamps and phone numbers to both the beginning and end of the recording. To do this, I used Audacity (with the LAME mp3 encoder to enable mp3 export).

Next, I double-clicked the edited mp3 file to open it in iTunes. At this point, it is tempting to open the contextual menu for the item in iTunes and select the "Create Ringtone..." option, but this will only work with items purchased through iTunes. It should also be noted that the name which appears for the item in iTunes (and later on the iPhone) is taken from the audio file's metadata, not from the file name, so I had to open the contextual menu for the item and select "Get Info." In the resulting window, I selected the Info tab, and set the Name field to the value I wished for the ringtone to appear as, then clicked "OK."

Next, I selected "Preferences" from the iTunes menu. On the General tab, I clicked "Import Settings..." (which is mis-named as these settings also impact the export conversion which I was about to perform.) On the "Import Using" popup menu, I selected "AAC Encoder." Next, I clicked the "OK" button on both dialog boxes, then opened the contextual menu for the item, and selected "Create AAC Version." A new copy of the item now appeared in iTunes. I used "Get Info" on this and noted the location of the underlying file and went there in the file system and copied the file to a different location, and changed its file extension from m4a to m4r. I went back into iTunes and removed the new item entry then went back to the file system and double-clicked my newly renamed m4r file to open it in iTunes. It now appeared in the Ringtones section of iTunes, and the next time I synced my iPhone, the new custom ringtone appeared on the list of ringtones available on my phone.

No comments: