我的目的是,通过语音(例如简单的单词)自动播放PowerPiont之类的演示文稿,课件等东西。
我想有三种方案:1,PowerPiont作内容,精灵、插件或后台软件实现声控播放;
                2,内容与控制全部由VB实现(VB我熟一点);
                3,利用第三方声控软件。
请大伙给点意见。

解决方案 »

  1.   

    用别人语音识别的sdk做,然后用vb控制powerpoint
      

  2.   

    谢谢(无铭人氏),这玩意是个重量级的东东,不瞒您说怕怕!
    还有简单一点的东西吗?我下了一大堆的Agent,但都只会说e文!
      

  3.   

    这个东西用起来很简单,什么IBM ViaVoice复杂多了
      

  4.   

    MS Speech SDK 5.1 还是 Agent ?
    我刚试了一下,精灵的听力太差,搞得我的 CPU 100% 忙!
    这样的话就不实用了。
      

  5.   

    先贴一段,没玩过的一起玩玩...Dim VarFlag As Boolean
    Dim AcsFileName As String
    Dim VarAnimationName As Variant
    Dim VarCharacter As IAgentCtlCharacterEx
    Private Declare Function GetCurrentDirectory Lib "kernel32" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongPrivate Sub cmdChina_Click()
      VarCharacter.Speak "Hello!", App.Path & "\NiHao.wav"
    End SubPrivate Sub Form_Load()
      fDir.Path = "C:\WINNT\MSAgent"
    End SubPrivate Sub Form_Unload(Cancel As Integer)
      Call FreeAgent(AgentA)
    End SubPrivate Function FileExist(ByVal VarFileName As String) As Boolean
      FileExist = IIf(Dir(Trim(VarFileName)) = vbNullString, False, True)
    End FunctionPrivate Sub acsFile_Click()
      On Error Resume Next
         
      Call FreeAgent(AgentA)
      ListBoxA.Clear
      
      AcsFileName = acsFile.Path & "\" & acsFile.FileName
      If FileExist(AcsFileName) Then
         VarFlag = True
         Call StartAgent
         
         For Each VarAnimationName In VarCharacter.AnimationNames
          ListBoxA.AddItem VarAnimationName
         Next
         ListBoxA.ListIndex = 0
      Else
         Dim Result As Long
         Result = MsgBox("在程序当前目录下没有动画角色文件!", vbInformation + vbOKOnly, "程序运行提示")
         VarFlag = False
      End If
    End SubPrivate Sub fDir_Change()
      acsFile.Path = fDir.Path
    End SubPrivate Sub ListBoxA_Click()
      cmdPlay.Enabled = True
      cmd_INI.Enabled = True
    End SubPrivate Sub ListBoxA_DblClick()
      Call cmdPlay_Click
    End SubPrivate Sub ListBoxA_GotFocus()
      cmdPlay.Default = True
    End SubPrivate Sub cmdPlay_Click()
      VarCharacter.Stop
      Caption = "演示动画角色动作" & ListBoxA.List(ListBoxA.ListIndex)
      VarCharacter.Play ListBoxA.List(ListBoxA.ListIndex)
    End SubPrivate Sub cmdStop_Click()
      VarCharacter.Stop
    End Sub
    '
    Private Sub cmd_INI_Click()
        Static initialized As Boolean
        ' 添加自定义命令
        If Not initialized Then
           VarCharacter.Commands.Add "Word", "Run Word", "word", True, True
           VarCharacter.Commands.Add "Time", "What time is it?", "time", True, True
           VarCharacter.Commands.Add "Bigger", "Bigger", "Bigger", True, True
           VarCharacter.Commands.Add "Smaller", "Smaller", "Smaller", True, True
           VarCharacter.Commands.Add "Calc", "Ok", "Calc", True, True
           initialized = True
        End If
         VarCharacter.Show
         VarCharacter.Speak "Can I help you?"
    End SubPrivate Sub FreeAgent(Eidolon As Agent)
      If VarFlag Then
         VarCharacter.Hide
         Set VarCharacter = Nothing
         Eidolon.Characters.Unload "CharacterID"
      End If
    End Sub
    'Private Sub StartAgent()
         AgentA.Characters.Load "CharacterID", AcsFileName '
         Set VarCharacter = AgentA.Characters("CharacterID")
         VarCharacter.LanguageID = &H409
         VarCharacter.MoveTo 20, 20
         VarCharacter.Show
         VarCharacter.Play "Congratulate"
         VarCharacter.Play "Wave"
         VarCharacter.Speak "Hello" '.Welcome to use The Character Animation Previewer Programm !"
         VarCharacter.Play "Reading"
         Call cmd_INI_Click
    End Sub
    Private Sub AgentA_Command(ByVal UserInput As Object)
        Select Case UserInput.Name
        Case "Time"
          ' 当听到"What time is it?"后回答当前时间
          VarCharacter.Speak "The time is " & Time
        Case "Word"
          ' 当听到"word"后,便运行MS Word
          VarCharacter.Speak "Yes,sir!"
          Shell "D:\Ms_Office\2k\Office\winword.exe", vbNormalFocus
        Case "Bigger"
          ' 当听到"bigger"后,Merlin会放大
          VarCharacter.Width = VarCharacter.Width * 1.5
          VarCharacter.Height = VarCharacter.Height * 1.5
        Case "Smaller"
          ' 当听到"samller"后,Merlin会缩小
          VarCharacter.Width = VarCharacter.Width / 1.5
          VarCharacter.Height = VarCharacter.Height / 1.5
        End Select
    End Sub