One thing I was curious to investigate was whether they’d made any changes to the text to speech functionality and Narrator in Windows 7.
The first problem I ran into was where had they moved the text to speech options. There’s no longer a Text to Speech applet in the Control Panel. If you view the Control Panel by Category you have to first click on the Ease of Access category.
Then you need to select Ease of Access Centre.
You’re then presented with the following confusing dialog, ironically titled Make your computer easier to use.
You need to select Use the computer without a display.
Now click on Set up Text to Speech.
This is the same familiar dialog that’s been around since Windows XP. No changes here and unfortunately it’s now been buried in the most obscure location.
Now there is a quicker way to access the Text to Speech settings dialog but it’s even less intuitive than the above, if that’s possible.
First you will need to switch your Control Panel view from Category to Large icons or Small icons. Then click on the Speech Recognition applet – yes I know speech recognition is the opposite to text to speech, bare with me.
You can see in the left column there is a Text to Speech link, kindly included for wayward travellers. This will bring up the text to speech options. It’s much quicker to access but so unintuitive, you’ll have a hard time remembering it.
Microsoft really need to bring back the Text to Speech applet and display it in the Control Panel when viewing by Large or Small icons. Here’s hoping they add this back in before the final release of Windows 7.
I was also hoping that they would have included a male voice as well as the female voice, Microsoft Anna, that comes with Vista. Many people have complained that they lost the male voice, Microsoft Sam, when moving from XP to Vista, even though Microsoft Anna sounds a lot better than Microsoft Sam. Microsoft, I hope you’re listening.
I have an EeePC 1000H which I use every day on the train. It has a 10″ screen, a full size keyboard, 1GB of RAM and a 160GB hard drive. It’s light, compact, has great battery life and powerful enough to run all my favourite apps. It came with Windows XP. When Microsoft released Windows 7 RC 1 the other day, I decided to repave my EeePC with this shiny new OS.
The first thing I did was upgrade the RAM from 1 to 2 GB. The RAM is very cheap (it cost me AU$70, although I hear you can buy it for around $20 in the US) and the upgrade is simplicity in itself. See this excellent guide for details.
I downloaded Windows 7 RC 1 as soon as it was available to MSDN subscribers. I burnt the ISO image to DVD and then copied the installation files across my home network to the second partition on my EeePC’s hard drive. As the EeePC doesn’t have an optical drive, I wasn’t sure if it would be able to successfully install directly from the DVD drive mounted across the network. I feared it would reboot during the installation and then discover it didn’t have the right network driver and no longer be able to access the installation DVD, In the end I think this was unnecessary as the installation first copies all the necessary files to the hard disk anyway.
I can’t comment too much about the installation process itself. I set it running and then went away and did something else. I’m not sure how long it took but when I returned it had finished and there were no problems. It had all the necessary drivers for my EeePC.
The most pleasant surprise I noticed was that Windows 7 was using the Aero interface. When Vista first came out there was a lot of talk around how everyone would need to upgrade their graphics cards in order to run Aero. Netbooks are not known for their powerful graphics processors and the EeePC is no exception. Not only does Windows 7 default to Aero on my EeePC, it runs like a dream. Everything feels very snappy and all the effects, such as fades and zooms are silky smooth. Gone are the piecemeal window repaints that were so common in XP and previous versions of Windows.
The most obvious change is the enhanced task bar at the bottom of the screen. It’s double the standard height (although you can change it to use small icons), allowing much larger application icons to be displayed. This has allowed Microsoft to cleverly combine quick launch icons and running applications. A running application now appears on the task bar as single, shiny icon. If you’ve pinned the application icon to the task bar permanently (equivalent to adding the application to the quick launch bar), then when you run the application, Windows simply highlights the pinned icon. Hover over the icon and a thumbnail preview of the window is displayed. If the application has multiple windows or tabs, then multiple thumbnails are displayed. This works so well that I never want to go back to the old taskbar.
Windows 7 comes with a number of desktop themes. I noticed that there was even an Australia theme. The Australian theme has a number of stunning wallpaper images, which it seems to cycle through at regular intervals. I’m not sure whether these images ship with Windows 7 or are being downloaded from Microsoft in the background. Either way, they look brilliant.
The nice thing about Windows 7 is that any application that is compatible with Vista is most likely also compatible with Windows 7. All the major architectural changes happened in Vista. Windows 7 is more about refining an existing platform to make it easier to use, faster and much better looking.
To date I’ve installed
- Office 2007
- Visual Studio 2008
- Expression Web
- Adobe Photoshop Elements 3.0
- Google Chrome
All applications run flawlessly. I thought I might have trouble with the oldest application, Adobe Photoshop Elements 3 but it seems fine. Windows 7 did block the installation of an old media driver during its installation but this is most likely a good thing rather than bad.
While talking about application compatibility I should mention that Windows 7 RC1 seems to be very stable. The only problem I’ve had to date is that after it comes out of Standby while plugged into my home network, it seems not to be able to find the network again and requires a restart. This is certainly something I can live with.
Windows 7 RC1 has won me over. That fact that it runs so nicely on my netbook means I’ll have no hesitation in using it for my new desktop PC that I hope to buy in the next month or two. Finally I can move off Windows XP. I won’t be looking back, except to remember that XP has been such a solid workhorse for so many years, too many in fact.
Windows 7 RC1 is now available as a free download from Microsoft at least until the end of June. It’s the Ultimate version which includes goodies such as Media Centre. It’s free to use for a year, after which time you’ll be able to purchase it and upgrade to the final release.
This is possibly the best marketing move Microsoft have made in years. It’s the ultimate free trial period. No one likes to reinstall their OS and applications from scratch. After using the OS for a year, you’re likely to have collected a huge number of applications and configured each to your own needs, making a reinstallation a very onerous task. Most people will likely just pay for a license to save them the hassle. It will be interesting to see if they’ll be forced to buy an Ultimate license of can downgrade it to one of the Business or Home editions? I would like to see Microsoft reward early adopters by allowing them to buy the cheapest Windows 7 license and still retain all the Ultimate functionality.
Windows 7 RC1 is also likely to find its way onto the PC’s of the most influential members of the community – the early adopters, developers, IT journalists and bloggers. The fact that it’s the best Microsoft OS ever, a big step up from Vista and a huge step up from XP is only going to win lots of friends and advocates.
It will be interesting to see if PC resellers start offering Windows 7 RC1 as an option when buying a new PC. I wonder if Microsoft would encourage or discourage this? Given that resellers are no longer forced to sell an OEM version of Windows with every new PC, I don’t see why they couldn’t. The only thing that may stop this being common practice is the fact Microsoft have placed a time limit on how long Windows RC1 will be available for download and activation. This may even prompt a rush of new PC sales before the end of June so that people can run Windows 7 RC1.
I’ve started into my Vista testing in preparation for the next release of Text2Go. Once again, UAC (User Account Control) issues have reared their ugly head. Although not insurmountable, they have required a certain number of contortions.
The first issue discovered involved a new option I’ve added to Text2Go. When you install Text2Go, it places a shortcut in the Windows Startup menu so that it’s launched every time you boot your PC. This great for those who use Text2Go regularly. It means it’s already running when you go to use it. However for those who only use Text2Go occasionally, it’s not worth launching it every time you start your PC.
If you don’t want Text2Go to run at startup, you can easily remove the shortcut from the Startup menu. However this is not very intuitive. It assumes
1. you know Text2Go is launched using a shortcut in the Startup menu.
2. you know how to remove shortcuts from the Windows menu.
Therefore I’ve added a simple checkbox in the Text2Go options that lets you choose whether Text2Go is launched at startup or not (thanks to Stephane Grenier founder of LandLordMax for this suggestion). Behind the scenes all it does is add or remove a shortcut from the Windows Startup menu. This is very simple, except on Vista when you’ve installed Text2Go for all users. Given that the default is to install for all users, I suspect that 99% of people leave it this way. It means Text2Go will be available for all users of the PC. It also means that the current user doesn’t have permission to add/remove this shortcut. In order to successfully perform this operation, the current user must be briefly elevated to Administrator. Fortunately Windows provides a simple way of achieving this. By using the ShellExecute command and passing ‘runas’ as the verb parameter, Vista will run the command elevated, prompting the user for permission as necessary. We use the DOS ‘del’ command to remove the shortcut and ‘copy’ to reinstall the shortcut. Problem 1 solved.
The second problem was a lot subtler and required greater contortions. During every install, the installation process needs to run elevated. If it didn’t it couldn’t even write files to standard locations such as the Program Files folder. At the end of the Text2Go installation process, Internet Explorer is used to display some quickstart tutorials. This serves two purposes. Firstly it ensures that the Text2Go toolbar is made visible in IE. Secondly it makes it very easy for new users to complete the quickstart tutorials and gain an understanding of Text2Go.
One consequence of launching IE during installation is IE also ends up running elevated. This is not ideal from a security perspective. IE will not be running in protected mode and if the user happens to browse to a dodgy website after completing the tutorials, they could potentially be vulnerable to a security exploit. It’s important to note that this only occurs for the one instance of IE that is started during installation. In all other cases Text2Go runs with standard privileges and works quite happily with IE in protected mode.
Security issues aside, this behaviour introduces one subtle problem. As you will recall, Text2Go is also running elevated. The problem occurs when it writes out any of its settings files. Writing the settings files works fine. It’s the security permissions that the file is created with that’s the problem. The current user is given read/write access and all other users are given read only access. This is still correct, except that the current user is actually the administrator, due to the fact that Text2Go is running elevated. This means that the next time Text2Go is started as a standard user, it will not be able to write to its own settings file, effectively freezing all options to their values at install time. They cease to become options at all. Definitely not what was intended.
The solution? IE must be launched as a non-elevated process at install time.
This will ensure that Text2Go is in turn launched as non-elevated and the settings file will be created with read/write access for the correct user. The side benefit is that best practice security-wise will also be observed.
The problem is that Microsoft don’t provide an API call to launch a non-elevated process from an elevated process. Thankfully, Andrei Belogortseff founder of WinAbility Software has come up with a neat solution which he has demonstrated in his VistaElevator 2.0 application. I’ve modified this application so that it can be used to launch any application non-elevated. At the end of the Text2Go installation I use this to launch IE non-elevated.
The third problem is once again related to file permissions. The major new feature in the next release of Text2Go is the ability to edit pronunciation dictionaries from within Text2Go. Not only that, you can share your corrections with other Text2Go users. An automatic update like service is used to upload your contributions to the Text2Go server and download contributions from the rest of the Text2Go community. This means that your local dictionary files will be updated on a regular basis. Unfortunately a standard user doesn’t have permission to write to these files (due to the default permissions set at install time). Now it would be possible to run an elevated instance of Text2Go to perform the update. However this would require the user to confirm this for every update. Not something you want to do on a daily basis. The update service has been designed to run in the background, requiring no user interaction.
The approach I’ve taken is to modify the permissions on the dictionary files at the end of the installation. There doesn’t seem to be a way of doing this in MSI, so I run the CACLS.exe utility at the end of the installation to grant all users read/write access to these files.
The final problem turned out not to be specifically Vista related but because I found it during Vista testing, I’m going to blame Vista anyway:) Normally when testing, I run Vista in a Virtual Machine and launch my setup from a shared drive on the ‘virtual’ network. This works well. However I was finding that if I first copied the setup file to Vista’s local hard drive and then launched the setup, the MSI installer would abort immediately and report an error about an invalid MSI package. Very strange. I’d made minimal changes to the installation script, none of which could cause such a catastrophic failure. When I tried a setup from a build a few weeks earlier, it installed without problem.
The only major change I could think of during this period was an upgrade from VS2005 to VS2008. This had been a very straightforward upgrade, with no problems encountered. Digging into the problem a little further, I was able to find the msiexec installation log. The last line contained an entry stating that the MSI package couldn’t be found. This would be the problem.
The Text2Go installation is packaged as a single Winzip self-extracting archive. This contains two files, a setup.exe and Text2GoSetup.msi. Setup.exe is a special bootstrap application provided by Microsoft that first checks for the necessary installation prerequisites (e.g. the appropriate MSI installer and .NET framework versions) and then launches the MSI. When I created the Winzip self-extracting archive, I told it to automatically run setup.exe. It then waits for setup.exe to complete before deleting setup.exe and Text2GoSetup.msi. This ensures no temporary files are left around after the installation and has worked nicely up until now.
It seems that the behaviour of setup.exe has changed subtly in VS2008. It now exits as soon as it’s issued the command to run the MSI. The Winzip self-extracting archive was detecting this and immediately cleaning up the archive contents, deleting the MSI before it had a chance to run.
The solution – have the Winzip self-extractor wait for the completion of Text2GoSetup.msi rather than setup.exe. You can tell wzse to watch a different application using the -wait argument. Unfortunately it only accepts a filename up to 8 characters in length. Will Windows ever throw off its DOS legacy? The good news is this change fixed the problem. Text2GoSetup.exe once again works from any location.
I suspect that it was a timing issue and just happened to work when the setup was on a shared network drive. Perhaps the network delays allow msiexec just enough time to get a lock on the file before wzse could delete it.
Update: This solution only fixed it for me. The first beta tester I gave the setup to had it fail in exactly the way I described. The real solution – revert back to the VS2005 version of setup.exe
This is nicely described here
Finally, Text2Go is once again in harmony with Windows Vista. Whew!
And Other Microsoft-Related Text to Speech Questions.
With the release of Windows Vista, Microsoft have introduced two new voices, Microsoft Anna – a female English voice and Microsoft Lili – a female Chinese voice. With this movement at the station, I thought I’d contact Microsoft and ask them a few text to speech related questions. Charles Oppermann, Program Manager for speech components at Microsoft was kind enough to provide some answers.
Mark: I am very interested in learning some of the background about the development of Microsoft Anna. Was the text-to-speech (TTS) engine and voice developed in-house or did Microsoft license some third-party technology?
Charles: Microsoft Anna is based on the MSTTS20 engine, codenamed “Mulan”. It was developed entirely by Microsoft, specifically in our Advanced Technology Center in Beijing, China.
Mark: What are the major improvements in Anna over Sam?
Charles: The major improvement is readability and a better sounding voice.
Mark: Is Microsoft Anna only for use with Windows Vista or will she be made available for XP users?
Charles: Currently Anna is only available with Windows Vista. However, there are a few products that include Anna that run on Windows XP, the first one is Microsoft Streets and Trips. That is a North American mapping product, and I believe the European versions go by the name Microsoft Autoroute. We would like to make Anna available for Windows XP as an end-user download, but haven’t committed to that yet. Do you have an opinion whether we should or not?
Mark: I personally think you should make Microsoft Anna available as a download for XP. I would like to see TTS gain more acceptance in the community and having Microsoft provide better quality voices out of the box is a good way of achieving this.
I understand there is a Chinese voice that is based on the same technology. What version of Vista do I need to install this voice?
Charles: That is correct, in addition to Anna, we have Microsoft Lili for Chinese. If you have Windows Vista Ultimate or Enterprise Edition, you can download the Chinese Language Pack which will install TTS and speech recognition engines for Chinese. Chinese language versions of Windows Vista include Lili and Anna in the box.
Mark: What do you see as the most important areas for improvement in TTS technology on the Windows platform?
Charles: The most important area is language expansion, making our TTS engine speak in many languages. We have an aggressive program to do this and will make the engines available in future server-based products and then make them available on the Windows desktop.
Mark: I’ve seen a number of grumblings on the web by people who want a male voice for Vista. Do you have any plans to make Microsoft Sam available for Vista?
Charles: There is no way we can make Microsoft Sam available on Vista. A particular module in it did not meet our security standards and we decided to block it when upgrading to Windows Vista. The L&H engines that come as part of Microsoft Office XP and Office 2003 don’t have this issue.
I want to see a male voice as well, but our main focus is voices for server-based products, which use predominately female voices. However, this is something I’m working on.
Mark: Finally, are there any current blogs, forums, newsgroups, etc where Microsoft text-to-speech developers hang out?
Charles: My blog and Rob Chambers blog are active and we try to be responsive to information requests. Several folks on our team try to keep an eye on the various Microsoft speech related newsgroups and forums (MS-Speech at Yahoo Group being one or the more active ones), but we really can’t provide support services through them.
Mark: Thank you very much for your time Charles.
The MS-Speech Yahoo group is mainly filled with speech recognition posts, although there is the occasional text to speech related post.
The Microsoft Speech Components group have just created a new blog for all things Speech @ Microsoft.
If you must have Microsoft Anna for Windows XP now, you can purchase the very reasonably priced Microsoft Streets and Trips for US39.95 which includes Microsoft Anna.