We help IT Professionals succeed at work.

Text to Speech Using SAPI in Access

1,433 Views
Last Modified: 2014-01-13
Hi,

I had a small spoken welcome message in my access application using SAPI text to speech. It was all working fine until I upgraded to Windows 8.1.

I have included the reference in tool to the "Windows Speech object" but still get the error 429 Activex can't create the object.

What do I need to do to get this working again?
Comment
Watch Question

ynot8669Owner

Author

Commented:
Forgot to mention I am using Access 2010
CERTIFIED EXPERT
Top Expert 2011

Commented:
I don't think it is an Access issue but an issue with  installing SAPI.

From: How to redistribute SAPI 5.1 core components
Applications that are developed based on Speech Application Programming Interface (SAPI) version 5.1 require that you install the SAPI 5.1 core component on the client computer.


Have you insured that SAPI is installed?
ynot8669Owner

Author

Commented:
I have not installed any SAPI SDK. Windows 7 and 8 just worked with a very simple VBA script. It has just stopped working after the Win 8.1 upgrade.

I do not really want to install extra software on all of the user PC's.

I have included the reference to C:\windows\system32\Speech\Common\sapi.dll
and physically checked that the dll is present ...it is
CERTIFIED EXPERT

Commented:
Microsoft delivers various backward incompatible SAPI versions without any warning...
So the programs working with SAPI 4 can stop working on computers having SAPI 5 etc.

To ensure the functionality you really have to install the SAPI version which is compatible with your program or install the appropriate SAPI version on the target computer.

A workaround is to play some WAW sound instead of TTS synthesis.
CERTIFIED EXPERT
Top Expert 2011

Commented:
ynot8669,

To verify it is not a version issue:

Open the folder: C:\windows\system32\Speech\Common\

Right click on the sapi.dll file  and select properties. Click the Details tab. There you will find the File Version. Compare the Windows 8.1 version and your version. If they are not the same version then that is probably the issue.

Have you tyied converting your code to Late Binding?
ynot8669Owner

Author

Commented:
My Win 8 PC is using 5.3.15125 and
Win 8.1 is using 5.3.16513

After some debugging I found that the error is related to something Audio. The voice was used behind a Logon Screen and the error was also causing the modal popup to disappear.
This might be something to do with using two screens but again this worked prior to the upgrade.

I found this code to test for SAPI Presence and added the error:
Private Sub Form_Load()
Dim RC, myGrammar, gSAPIPresent
   On Error GoTo SAPINotFound

    Set RC = New SpSharedRecoContext

    Set myGrammar = RC.CreateGrammar
    myGrammar.DictationSetState SGDSActive
    gSAPIPresent = True
    Exit Sub

SAPINotFound:
    If Err.Number = 459 Then
        MsgBox "SAPI not found"
    ElseIf Err.Number = -2147200904 Then  'SPERR_AUDIO_NOT_FOUND    whatever that might be
        Else
        MsgBox "Error encountered : " & Err.Number
    End If

    gSAPIPresent = False
End Sub

My issue is with the SPERR_AUDIO, I have maximized the logon form ...looks silly but with the above code and a screen maximise the speech works fine.

I will move to another 8.1 machine and see if it's my set-up or common accross machines.
ynot8669Owner

Author

Commented:
It seems to be an issue on my main set-up or subtle difference between Office 2013 and 2010. The issue setup in Office 2010 and my other PC is Office 2013 which reconfigured itself on first launch and worked unaltered and as expected.
Owner
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION
ynot8669Owner

Author

Commented:
Self Solved and actual cause only presumed.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.