Michael Angstadt's Homepage
programmer, teacher, artist, frontiersman

Spoken Wikipedia

The Spoken Wikipedia project is an organization on Wikipedia that creates audio recordings of Wikipedia articles. I have created a number of recordings for this organization.

My Wikipedia handle is Mangst.

How I record articles
How this webpage works

Article Last Updated
HTTP cookie 05/28/2016
Bioinformatics 09/20/2013
Iapetus (moon) 08/22/2013
Parallel computing 08/21/2013
JavaScript 08/20/2013
Java (software platform) 08/19/2013
Saturn 08/18/2013
Sequence alignment 06/05/2012
Minecraft 01/22/2012
Neural network 11/27/2011
Connectionism 11/26/2011
Ray Kurzweil 11/25/2011
Representational State Transfer 11/25/2011
PHP 11/23/2011
Computational neuroscience 11/22/2011
Rhea (moon) 10/29/2011
VoiceXML 10/29/2011
Agile software development 10/29/2011
IBM WebSphere MQ 10/29/2011
Service-oriented architecture 10/27/2011
Interactive voice response 10/26/2011
Titan (moon) 10/25/2011
Enceladus (moon) 10/24/2011
OpenBSD 10/23/2011
NeXT 10/16/2011
Functional programming 08/25/2011
Helene (moon) 02/06/2010
Tarqeq (moon) 02/06/2010
Polydeuces (moon) 02/06/2010
Kiviuq (moon) 02/06/2010
Siarnaq (moon) 02/06/2010
Paaliaq (moon) 02/06/2010
Ijiraq (moon) 02/06/2010
Dione (moon) 01/18/2010
Anthe (moon) 01/16/2010
Methone (moon) 01/16/2010
Daphnis (moon) 01/16/2010
Pallene (moon) 01/16/2010
Pan (moon) 01/16/2010
Aegaeon (moon) 01/16/2010
Telesto (moon) 01/15/2010
Calypso (moon) 01/15/2010
Tethys (moon) 01/14/2010
Janus (moon) 01/13/2010
Atlas (moon) 01/13/2010
Epimetheus (moon) 01/11/2010
Phoebe (moon) 01/10/2010
Pandora (moon) 01/10/2010
Mimas (moon) 01/10/2010
Prometheus (moon) 01/10/2010
Hyperion (moon) 01/09/2010
ToeJam & Earl 11/14/2009
Battle of the Somme 01/31/2009

How I record articles

Last updated: 12/19/2011

Software

I use Audacity to make the recordings. Audacity is a free, open-source, digital audio editor that's available on all operating systems. The Spoken Wikipedia page uses this software when giving instructions on how to record articles, so I decided to use Audacity so that I could follow along with the instructions. But it works well and I have no desire to switch to anything else.


A screenshot of Audacity running on my Mac.

My recording process

I usually make each recording in two or three separate sessions of about 3-4 hours each, depending on the size of the article. I find that, if I can record for long stretches of time, I get into a good "groove" and the quality of my recording increases. I start each session by getting a cup of warm water so my throat doesn't get dry (don't drink juice or soda because they have sugar, which makes your mouth produce mucus). Then, I warm up by reading a couple paragraphs of the article. Even though I'm just warming up, I still record myself talking because I find that the fact that I'm being recorded has an effect on how I speak (it makes me a little nervous). So, I record myself warming up, even though I'm just going to throw away the recorded audio.

After I've warmed up, I start the real recording. I record the article one section at a time (each Wikipedia article is divided up into a number of sections). If I make a mistake, I re-read the sentence without stopping the recording. When I finish recording the section, I stop the recording and play back the section I just read, deleting the mess-ups and correcting any other mistakes I didn't notice before. Then, I move on to the next section and repeat the process until I finish.

As I'm recording, I like to add labels to the audio file to mark where each section begins (you can do this in Audacity by pressing Ctrl-B). This makes it easier to update the recording later on because it allows me to jump right to the section I need to edit.


Labels are displayed below the audio track.

Once I've finished the entire article, I listen to the whole thing one more time to catch any other mistakes that slipped through. Then, I perform the following post-processing effects on the recording:

  1. Remove noise - Even though it's very quiet where I live, there's still a tiny bit of background noise which I can kind of hear after I've Normalized. To remove this noise, select about 5 seconds of sound where you're not talking, then go to "Effect > Noise Removal" and click the "Get Noise Profile" button. Then, select the entire audio recording by pressing Ctrl-A and go to "Effect > Noise Removal" again. This time, click "OK" to perform the noise removal using the noise profile you just created. You should definitely do this if you live somewhere noisy, like next to a busy street.
  2. Normalize - This will amplify everything to a good volume without making the recording sound crackly.
  3. Bass Boost (with a small value of about 4 dB) - This makes your voice sound sexier. :)


Audacity comes with a number of effects that you can apply to your recording.

Then, without saving, I export the recording to an OGG file, then close the recording without saving. I don't save it because I don't want to save the post-processing effects that I made--I want to keep the recording as raw as possible so that I can reopen it later and make edits if I need to. The idea is that you should only run these post-processing steps when you're ready to export to OGG and upload the file to Wikipedia. You should never save the post-processing changes.

How to start and end an article

Before reading the text of the article, I start each recording by reading the article title, saying that it's from Wikipedia, then saying the date that the recording was made on (or the date the recording last updated). For example:

Neural network. From Wikipedia, the free encyclopedia, at en dot wikipedia dot org. Recorded on November 27th, 2011.

Then, I read the article introduction, followed by the table of contents. When reading the table of contents, I only read the major sections--I don't read the minor sections or the sections that I won't be reading. For example, I would only read sections 1, 2, 3, 4, 5, and 6 from the table of contents below (section numbers can be enabled by logging into Wikipedia, going to "My Preferences > Appearance" and checking "Auto-number headings"). I leave out everything else, including the sub-sections, because I feel it would overwhelm the listener:


I would only read the white sections from this table of contents.

At the tail end of the recording, I state the title of the article, say that it's from Wikipedia, state the date the recording was made, and then read the licence. For example:

You have just finished listening to Neuroscience, from Wikipedia, the free encyclopedia. This article was recorded on November 27th, 2011. This sound file and all text in the article are licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License, available at http://creativecommons.org/licenses/by-sa/3.0

Some people like to also mention their names at the beginning and/or end of the recording, but I don't do that.

Updating a recording

With every change that is made to an article, your audio recording becomes less and less accurate. Because of this, I like to update my recorded articles every six months or so to help keep my recording in-sync with the latest revision of the article.

To help me do this, I create a Word document that contains the text of the old revision (the revision I last used to record the article), with the changes that I need to make highlighted in yellow. I open the old revision from the "View History" screen, and then just copy and paste the entire webpage into Word. I then edit this document with the changes I need to make. Text that needs to be added I highlight in bright yellow, and text that needs to be removed I highlight in yellow and give the "strikethrough" formatting. It takes time to do this, but it makes updating the recording so much easier. It's worth it, trust me.


My Word document tells me exactly what changes I need to make to my recording.

Determining what changes were made to the article can be tricky. If the article hasn't changed too much, Wikipedia's "Compare selected revisions" feature is usually enough (click on the "View History" tab, select the two revisions by clicking on the radio buttons, then click "Compare selected revisions"). However, if the article went through more complicated changes, then you're going to have to inspect each revision manually, using the "Compare selected revisions" feature only to figure out the location of each change. "Compare selected revisions" also points out changes that aren't relevant to an audio recorder, like changes related to formatting or references, so it often looks like there's more changes than there actually is.


Wikipedia lets you compare two revisions of the same article side by side.

Other tips

Back to top

How this webpage works

Last updated: 12/22/2011

The list of articles you see is not hard-coded into my website--it is screen-scraped from my Wikipedia user page. What happens is it loads the HTML code of my user page, looks for the table where I have my list of articles, and then parses the data from the table. Luckily for me, the HTML code of Wikipedia is very well-structured, so I can treat it just like XML. This allows me to load it into a DOM (document object model) and then run XPath queries against it to extract the data I want.

View the source

Not all websites have well-structured HTML like Wikipedia, however. These websites are much more difficult to scrape because they're harder to load into a DOM and parse with XPath. Also, even if the HTML is well structured, it could be that the data isn't organized in a consistent way, making it hard to determine where in the webpage to get the data from. But the truth is that HTML isn't meant to encode raw data. It's a markup language that defines how the data is displayed in a web browser. Other data formats, such as JSON and XML, were specifically designed for encoding raw data.

I also cache the data on my own web server. This allows my website to read the data from the cache, instead having to load the page from Wikipedia every time. When the last modified date on the cache file gets to be older than one hour, it scrapes the Wikipedia page again, incase any changes were made to it in the last hour. It caches the data in an XML file.

	<?xml version="1.0"?>
	<spokenWikipedia>
		<article url="http://en.wikipedia.org/wiki/Battle_of_the_Somme" title="Battle of the Somme" featured="false">
			<date>2009-01-31</date>
		</article>
		<article url="http://en.wikipedia.org/wiki/NeXT" title="NeXT" featured="true">
			<date>2009-02-10</date>
			<date>2010-09-26</date>
			<date>2011-04-09</date>
			<date>2011-10-16</date>
		</article>
		[more articles...]
	</spokenWikipedia>
	
What the cache XML file looks like.
Back to top