金山词霸应该用的是微软的speech api吧

解决方案 »

  1.   

    确实是用的speech api!我给出VB发声的源代码,你自己转化成VB吧!
    (你也可以直接用VB做成控件然后让VC调用!具体方法请看《电脑编程与维护》2000年末或者2001年初的某一期)'VTxtAuto内部的一个全局对象,具体用途参见《电脑编程与维护》我前面说的那期!
    Private Sub Form_Load()
        Call VTxtAuto.VTxtAuto.Register(Space(10), Space(10))
        Me.Caption = "英文读书机器" & App.Major & "." & App.Minor & "." & App.Revision
    End Sub
    '朗读数字或英文
    Function SpeakStr(ByVal SpeakX As Variant) As String
        Dim LsStr As String
        LsStr = SpeakX
        '去掉汉字(因为汉字不能朗读)
        DelChinaStr LsStr
        On Error GoTo ErrCancel
        VTxtAuto.VTxtAuto.Speak LsStr, vtxtsp_VERYHIGH + vtxtst_READING
    ErrCancel:
        SpeakStr = Err.Description
    End Function
    Private Sub Speak_Click()
        If SpeakText.Text = "" Then
            MsgBox "请先打开文件或者输入要朗读的句子", , "没有要朗读的语句"
            Exit Sub
        End If
        VTxtAuto.VTxtAuto.Speak SpeakText.Text, vtxtsp_VERYHIGH + vtxtst_READING
    End Sub
    Private Function DelChinaStr(ByRef LsStr As String) As Long
        Dim X As Long, Rt As Long
        For X = 1 To Len(LsStr)
            If Asc(Mid(LsStr, X, 1)) < 0 Then Mid(LsStr, X, 1) = ChinaText.Text: Rt = Rt + 1
        Next X
        DelChinaStr = Rt
    End Function