Sound input clipping workaround... in GA (no more robot sound)

Discussion in 'Parallels Desktop for Mac' started by unused_user_name, Jun 15, 2006.

  1. unused_user_name

    unused_user_name Pro

    Messages:
    495
    Hello,

    I've posted this in anothe thread, but I figured I should move this to a new one so it gets more exposure...

    I'm trying to get Dragon Naturally Speaking working under a Windows XP VM, inside Parallels. I have a USB mic (Andrea AK5370).

    First I tried without success toget the mic working as a USB device under windows. After giving up on that, I moved to that apple sound system to discover the odd buzing (clipping) sound that others have described.

    I have found a reason and a workaround for this problem.

    The problem: Some programs (not all of them) have an odd buzzing noise (that sounds like the audio is being clipped in the analog world) in the sound input. Not all programs have this problem.

    My hypothsis: The Parallels virtual sound driver requires some kind of initilization that is in the spec for the Intel sound card it is emulating, but the real hardware does not actually require the initilization even though it is in the spec.

    Workaround: Install audacity (http://audacity.sourceforge.net). Open the program and "monitor input" by right clicking on the VU meter on the right. While Audacity is still open, fire up the MS sound recorder (or whatever audio program you want) and use the sound input. You will notice that the clipping noise is gone.

    Thoughts: Audacity will initilize sound hardware "to spec" as the devolopers of that program are very picky about their sound quality. Other programs will simply hope that MS's driver initilizes it (which my guess is that it does not).

    After this workaround, Dragon works correctly.

    (As another note: One thing Parallels does not like is suspending the machine with an external mic plugged in, and resuming on the internal mic. This breaks sound support for the VM until you restart PD with the external mic selected. If you use external mics, plug and unplug while PD is not running)
     
    Last edited: Jun 15, 2006
  2. rohela

    rohela Junior Member

    Messages:
    19
    Have you experimented with different size parallel installations to find the optimal RAM and hard disk allocation sizes fpr Dragon Naturally Speaking?

    How does the performance compare to Bootcamp? I assume you have to dictate i Dragon Pad and then cut and paste the results, correct?

    Your installation uses a OSX product to set the mic input. Did you use system preferences in OSX as well or just Win XP sound control panel?
     
  3. beg_ne

    beg_ne Bit poster

    Messages:
    5
    You sir are a GENIUS!!! This fixed the crappy robot voice problem in my VOIP apps. Now I actually sound human. Hopefully the guys at parallels will implement a fix now that you've found something that fixes the bad sound.

    Running Audacity causes my Macbook to run at about 116% CPU and makes the fans kicks on so the situation isn't ideal. If only I knew about this fix a week ago, I could have had my friend sold on a Mac. Maybe she'll still listen to me though when she hears my clear voice online. :)
     
  4. unused_user_name

    unused_user_name Pro

    Messages:
    495
    I am using a 10gb expanding partition, with 512Mb of RAM allocated to the VM.

    If I give it any less then 512mb of RAM the recognition accuracy gets really bad. Also If I give it more then 1GB of RAM (in my Macbook with 2GB of RAM) then it also loses accuracy, due to not enough RAM on the Mac side.

    I ahve not tried diffrent partition sizes, but I have found that as long as the partition does not change size much (i.e. creating large files) Dragon works as well as it does on my real hardware Windows box. (I am using the same Dragon user with the same USB mic to hold things as constant as I can)

    I changed the sound input in the Mac side. The audio driver inside Windows seems to mirror whatever the Mac gets as input, regardless of what is selected in it.

    I dictate to Dragon pad, and save the files in a SMB share so I can get at them directly on Mac. The only down side is that Windows likes to have ^M's at the end of each line, and that Dragon Pad does not add carrage returns at the end of lines when the wrap. (This is plain text files)

    I'm working on a little python script that will fix the second one. Fixing the first one is simply calling dos2unix on the file.

    Also, I do not get a CPU spike unless I tell Audacity to record. If I let it "monitor input" by clicking on the VU meter on the right, then minimize the window and ignore it then it does not eat my CPU for lunch.

    Sometimes if I suspend the machine while Dragon is running, then resume it without the mic plugged in (or even with the mic plugged in, but not selected as the input device), then Windows sound support is borked completely until I suspend/enable mic/resume again. This is annoying, but whatever, I can talk to my Mac now :)
     
    Last edited: Jun 16, 2006
  5. MicroDev

    MicroDev Hunter

    Messages:
    122
    Have you tried reducing the hardware acceleration and sound sample quality prior to doing this? In Win 2K this made a big difference for me. Win XP seemed unaffected...
     
  6. unused_user_name

    unused_user_name Pro

    Messages:
    495
    Changing those settings have no effect under XP as far as I can tell...
     
  7. ahmontgo

    ahmontgo Bit poster

    Messages:
    6
    Thanks for the hint, works fine now for me.

    I've been experimenting with Win2VNC + OSXvnc as a way of dictating directly into my Mac applications. Win2VNC allows you to use the VNC protocol to send keyboard and mouse commands to your Mac (running OSXvnc). I have a two-screen setup where Windows is running in one screen on the left and Mac OS X is running in the screen on the right. I set up Win2VNC to transfer control of the keyboard and mouse to the Mac when I run the cursor off the left side of the Windows screen. If Dragon is already running, you can then dictate into any application on the Mac side.

    Caveats: correction doesn't work properly in all applications, apparently since the keyboard controls for selecting and deleting text differ from application to application. For example, this dialog box in Safari works fine for correction, but OS X Mail doesn't work properly. Additionally, for whatever reason, control cannot be returned to the Windows part. Normally, I should be able to transfer control back (through VNC) by moving the cursor to the right side of the Mac screen, but this just bounces. I suspect that if we could turn off mouse synchronization in Parallels Tools, this would work properly.

    Synergy might also work, but it's much more difficult to configure properly, so I haven't tried it yet.
     
  8. dkwehe

    dkwehe Member

    Messages:
    54
    WinXP Dragon to Mac side

    Brilliant idea -- dictating into DNS with output to Mac.

    Can you give a bit more detail as to how you accomplished this? I've installed OSXvmc and RealVNC, but haven't had any luck making this connection.

    David.
     
  9. ahmontgo

    ahmontgo Bit poster

    Messages:
    6
    Install OSXvnc on the OS X side, and Win2VNC on the Windows side. Win2VNC takes keyboard and mouse actions from the Windows side and just transmits them (and not video, unlike most VNC clients) to OSXvnc. RealVNC is a traditional VNC client; you could use for the same purpose, but you would get the additional lag of retransmitting the video feedback from the OSX side into Windows.
     
  10. ahmontgo

    ahmontgo Bit poster

    Messages:
    6
    For those who made it here wondering if Dragon Dictate would work under Parallels, the August 8 Beta appears to have fixed the sound clipping issue.
     
  11. dkwehe

    dkwehe Member

    Messages:
    54
    That's good news about being able to skip the Audacity step.

    Being new, I'm missing something important here.... I can get OSXvnc and Win2VNC working if and only if the Macbook is connected to the network. Then, they see each other and connect, and Dragon works quite fine dictating into the Mac applications. Therein is the rub.

    But how do I get OSXvnc and Win2VNC to connect if there isn't an external network connection?
     
  12. dkwehe

    dkwehe Member

    Messages:
    54
    Oh, and one other question. DNS 9.0 has been released and is more demanding on the processor. Has anyone tried this latest release with the Macintels? Macbook? eh?
     
  13. ahmontgo

    ahmontgo Bit poster

    Messages:
    6
    Nope, they released 9.0 about a week after I bought 8.0 - bastids. I don't see any reason why it wouldn't run well.

    I'm not sure you can get it working without an external connection, since Mac OS X seems to need a network connection in order to assign an IP number to a network port, and an IP number is required to get Win2VNC to connect properly to OSXvnc. Although I don't recall the last time I wasn't connected to a network...
     
  14. dkwehe

    dkwehe Member

    Messages:
    54
    actually, by using host-only it works. The only problem is that it hosed my Dragon dictionary. Time to re-install I guess.
     
  15. danieljhale

    danieljhale Bit poster

    Messages:
    4
    My apologies for showing up late to the party, but . . . I've been running DNS9 in the XP partition of my MBP, which works fine, but I'm tired of rebooting. Will the new Parallels Desktop for Mac Beta allow me to run DNS9 (I use a Parrott USB microphone)? I'd love to wipe out that partition.
     
  16. dkwehe

    dkwehe Member

    Messages:
    54
    I'm running DNS9 in only a MB using parallels and it works fine. It's a tiny bit slower than DNS8, but not enough to make it unpleasant to use. I have tried Andrea 750, VXI Parrot, BoomQuiet, etc. and they all work though a decent USB sound pod.

    Ahmontgo has uncovered a clever way to dictate into Mac applications, by the way. You might find his technique as useful as I have.

    dkw.
     
  17. danieljhale

    danieljhale Bit poster

    Messages:
    4
    Aha! The little lightbulb above my head just came on. Now I understand that the workarounds were for dictating into Mac programs. I'm going to wipe my BootCamp partition, install Parallels, and give it a shot. Wish me luck . . .
     
  18. ahmontgo

    ahmontgo Bit poster

    Messages:
    6
    The first workaround (sound clipping, Audacity fix) was for getting it to work in Parallels; with the latest beta, this is no longer necessary.

    The Win2VNC/OSXvnc workaround is for getting it to dictate into Mac applications.
     
  19. danieljhale

    danieljhale Bit poster

    Messages:
    4
    Quite. I'm with you. I've gotten DNS9 to work within Parallels with hardly a hitch. Now on to the direct-to-Mac-applications dictation workaround. By the way, this thread has been very helpful. Thanks, all.

     
  20. dNb

    dNb Bit poster

    Messages:
    1
    Naturally Speaking on a MacBook Pro

    Howdy-

    I just thought I would chime in with a similar tweak to the same basic idea so other people know it is possible. I too was interested in using DNS9 under Parallels to dictate to Mac apps (e.g. Mail). I'm really thankful to ahmontgo for the reminder that a VNC-based solution might actually work. I spent some time getting both Win2VNC and Synergy working on my MacBook Pro. I then realized that both solutions would really only work well if I had dual-headed the laptop and used a second screen (as ahmontgo said he/she was doing). That wasn't going to be practical for me to do with the laptop, so I went a slightly different direction.

    It turns out that in later versions of OSX, Fast-User switching can be used to essentially run two user sessions at once. OSXvnc is happy to serve out the inactive user session (see http://www.redstonesoftware.com/multidesktop.html). This means that you can run Parallels in a second user session and from within that VM run TightVNC to connect back to the first user session. With both TightVNC and Parallels in full-screen mode, it is almost exactly as if you are directly logged on to OSX, except, ta-da! you have DNS9 active. I haven't spent too much time in this configuration, but I had a very positive experience so far (e.g. unlike ahmontgo, I found that DNS9 corrections worked pretty darn well for me in Mail.app).

    This whole things takes a little finagling, but it is possible. Here's a quick primer for what I did:

    1) (install VM, install DNS9/TightVNC into that VM, get them working, etc.)

    2) create new user whose job it will be to just run Parallels

    3) make it so that the new user can read the Parallels VM files from my standard user (because I was lazy and didn't feel like creating a new VM or copying the files to the new user. You may want to do that because it is easier)

    {warning: hairy stuff follows in this step}
    a) start Applications/Utilities/NetInfo Manager. Go to users. Find my normal user, look at the value for GID. Then go to the new user that I created and change the GID to be the same as my normal user. Save changes.
    b) from Terminal: chmod -R g+rwx ~/Library/Parallels

    4) Start up OSXvnc and start the server.

    5) Fast-User login to the new user. Start Parallels. Enter by hand (since for some reason it won't see it if you try to browse to the file) the path to the .pvs file for the VM that has DNS9 installed. Start that VM.

    6) In that VM, start DNS9. Then start TightVNC and connect to the server you started in step #3. You may want to fiddle with the TightVNC session, but at this point you should be looking at your original OSX login session except, yay, DNS9!

    There are still a few rough edges because DNS9 doesn't know how to natively work with the application (e.g. I need to find an easy way to push OSX app buttons), but this looks promising.

    Hope this info is helpful. Thanks again to ahmontgo for the key info that got me going.

    -- dNb
     
    Last edited: Aug 21, 2006

Share This Page