我問了這個問題on SuperUser,但它是無言的。希望我能在這裏獲得更多的觀衆。用於腳本WAV或MP3輸出的文本到語音(TTS)軟件
我在尋找像ScriptVox這樣的低成本(或免費)解決方案,只有更好的引擎。也就是說,要讀取腳本並將字符分配給語音。我已閱讀文章here,但即使那些我不得不連接wav文件。這並不是說我不喜歡Audacity,但它很耗時。我半途想寫自己的作品,但我確信必須有一個解決方案。有什麼建議麼?
我問了這個問題on SuperUser,但它是無言的。希望我能在這裏獲得更多的觀衆。用於腳本WAV或MP3輸出的文本到語音(TTS)軟件
我在尋找像ScriptVox這樣的低成本(或免費)解決方案,只有更好的引擎。也就是說,要讀取腳本並將字符分配給語音。我已閱讀文章here,但即使那些我不得不連接wav文件。這並不是說我不喜歡Audacity,但它很耗時。我半途想寫自己的作品,但我確信必須有一個解決方案。有什麼建議麼?
我會使用微軟的文本到語音引擎。他們對如何做的正是一個簡單的例子,你在找什麼:
http://msdn.microsoft.com/en-us/library/ms717065(v=vs.85).aspx
隨着該示例代碼,你可以講一些文字,並把它轉儲到WAV文件。從那裏,如果你需要轉換成MP3等格式,你可以使用FFMPEG。
Brad's answer是非常了不起的,因爲它包含你正在尋找的東西。 但是,它缺少一個你在問題勘誤表中偏愛的基礎:在C#中的實現。
Here's a full tutorial訪問託管代碼中的語音API。隨着全歸功於布萊克Niemyjski和微軟相應的小組,這裏的顯着位,因爲linkback原來的文章是死的,這似乎是直接從微軟借:
下面的鏈接(給計算機一語音)會帶你到一個 微軟網站,它會告訴你如何創建一個項目,並獲得一個 基本文本語音應用程序啓動和運行在VB。NET或c#中沒有 時間!
SAPI
SAPI是語音API,讓應用程序能夠訪問語音 識別和文本到語音轉換(TTS)引擎。本文重點介紹 TTS。對於TTS,SAPI將文本作爲輸入並使用TTS引擎以 輸出該文本作爲口語音頻。這是與Windows輔助工具Narrator 使用的技術相同。自XP附帶SAPI和英文TTS引擎以來,每個版本的Windows 。
TTS讓用戶的耳朵工作。它允許應用程序向用戶發送信息,而不需要用戶的眼睛或雙手。 這是一個非常強大的輸出選項,在 個人電腦上不常使用。
需要三個步驟中被管理的應用程序中使用TTS:
- 創建互操作DLL
由於SAPI是一個COM組件,以從 一個用它的互操作DLL需要託管應用。要創建此項,請在Visual Studio中打開該項目。 選擇「項目」菜單,然後單擊「添加參考」。選擇COM選項卡, 在列表中選擇「Microsoft Speech Object Library」,然後單擊確定。 這些步驟將此引用添加到您的項目中,並在與可執行文件相同的文件夾中創建一個 Interop.SpeechLib.dll。這 Interop DLL必須始終與您的.exe文件位於相同的文件夾才能正常工作 。
- 參考互操作命名空間
包括此命名空間在應用程序中。在C#中,添加「using SpeechLib;」;在VB中,添加「Imports SpeechLib」。
- 呼叫說話()
創建SpVoice對象並調用講():
的Visual C#
SpVoice voice = new SpVoice(); voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault);
的Visual Basic
voice = New SpVoice voice.Speak("Hello World!", SpeechVoiceSpeakFlags.SVSFDefault)
我覺得布拉德的回答讓我在這裏得到了正確的解決方案(因此,他比我更值得信任),但這應該是你最後一塊遺失的東西。您現在應該能夠將託管代碼中的C++ solution的WAV文件複製到您想要的格式,然後從transcode中複製。
你知道哪些編程語言? – Brad 2012-04-13 17:28:28
我希望找到一些已經寫好的東西。我是一個代碼猴,並且自從BASIC有線號以來一直在進行編程。然而,C#是我付費開發的。 – SQLMason 2012-04-13 17:47:14
查看我的帖子。有一個VB解決方案,您可以輕鬆地適應.NET。如果你想要寫一些東西,那麼你會想看看其他地方。堆棧溢出用於編程問題。 – Brad 2012-04-13 17:48:04