簡體   English   中英

Vb.net使用文件中的語音將文本轉換為語音?

[英]Vb.net text to speech using voice from file?

我已經制作了一個簡單的程序,該程序使用sapi 5來說出用戶輸入的任何內容,但是我想使用保存在程序目錄中的語音,這可能嗎? 我以前見過c ++程序可以做到這一點,但我不確定在Visual Basic中如何實現這一點。

如果我錯了,請糾正我,但是您要嘗試做的似乎是錄制您的應用產生的聲音,然后作為步驟2,將其識別回文本。

要解決錄音問題 ,您需要使用聲卡的輸入和磁盤上的wav文件輸出來組成Direct Show過濾器圖。 作為VB開發人員,您應該能夠使用不推薦使用的ManagedDX或類似的包裝器來實現此目的。

之后要處理TTS ,您需要將此文件提供給某些識別API,例如Bing Speech API

這兩個主題都應分別使用Google搜尋和堆棧溢出。

我有一個舊項目,它是用VB6編寫的,而且可以將語音時間轉化為語音,也許您可​​以從中得到一些好處,我不知道。

Private Declare Function SndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Dim p As String
Dim sound(1 To 59) As String
Dim at As String
Dim minutes As String
Dim over As String

Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim index As Integer

SndPlaySound at, 0

a = Val(Mid$(Time$, 1, 2))
b = Val(Mid$(Time$, 4, 2))

If b = 0 Then
    If a > 0 And a <= 12 Then
        SndPlaySound sound(a), 0
    Else
        SndPlaySound sound(a - 12), 0
    End If
    Exit Sub
End If

SndPlaySound sound(a), 0
SndPlaySound over, 0
SndPlaySound sound(b), 0
SndPlaySound minutes, 0
End Sub

Private Sub Timer1_Timer()
Label1 = Time$
End Sub

Private Sub Form_Load()
Label1 = Time$
p = App.Path + "\Sound\"
Speak
End Sub

Private Sub Speak()
at = p + "at.wav"
over = p + "over.wav"
minutes = p + "minutes.wav"
sound(1) = p + "1.wav"
sound(2) = p + "2.wav"
sound(3) = p + "3.wav"
sound(4) = p + "4.wav"
sound(5) = p + "5.wav"
sound(6) = p + "6.wav"
sound(7) = p + "7.wav"
sound(8) = p + "8.wav"
sound(9) = p + "9.wav"
sound(10) = p + "10.wav"
sound(11) = p + "11.wav"
sound(12) = p + "12.wav"
sound(13) = p + "13.wav"
sound(14) = p + "14.wav"
sound(15) = p + "15.wav"
sound(16) = p + "16.wav"
sound(17) = p + "17.wav"
sound(18) = p + "18.wav"
sound(19) = p + "19.wav"
sound(20) = p + "20.wav"
sound(21) = p + "21.wav"
sound(22) = p + "22.wav"
sound(23) = p + "23.wav"
sound(24) = p + "24.wav"
sound(25) = p + "25.wav"
sound(26) = p + "26.wav"
sound(27) = p + "27.wav"
sound(28) = p + "28.wav"
sound(29) = p + "29.wav"
sound(30) = p + "30.wav"
sound(31) = p + "31.wav"
sound(32) = p + "32.wav"
sound(33) = p + "33.wav"
sound(34) = p + "34.wav"
sound(35) = p + "35.wav"
sound(36) = p + "36.wav"
sound(37) = p + "37.wav"
sound(38) = p + "38.wav"
sound(39) = p + "39.wav"
sound(40) = p + "40.wav"
sound(41) = p + "41.wav"
sound(42) = p + "42.wav"
sound(43) = p + "43.wav"
sound(44) = p + "44.wav"
sound(45) = p + "45.wav"
sound(46) = p + "46.wav"
sound(47) = p + "47.wav"
sound(48) = p + "48.wav"
sound(49) = p + "49.wav"
sound(50) = p + "50.wav"
sound(51) = p + "51.wav"
sound(52) = p + "52.wav"
sound(53) = p + "53.wav"
sound(54) = p + "54.wav"
sound(55) = p + "55.wav"
sound(56) = p + "56.wav"
sound(57) = p + "57.wav"
sound(58) = p + "58.wav"
sound(59) = p + "59.wav"
End Sub

這不是最好的方法,但似乎是我所能找到的唯一方法,您可以在CircumReality上搜索它,它是由某人創建的游戲,它使用文本進行語音表達,開發人員很好地包括了允許您發出聲音的工具並安裝.tts文件。

只需下載CircumReality並安裝它,然后進入程序目錄並從此處打開MNLP.exe,您應該可以選擇從文件安裝tts語音。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM