2013-03-18 32 views
0

我已經做IVR工作了一段時間,但我們必須在這裏我很想一定的專業知識/反饋的情況:的VoiceXML - 認識DTMF錄音

是否可以記錄一個消息,其中用戶可以按DTMF音調來指示我們將插入我們自己的聲音的暫停?在這種情況下,用戶將記錄如下:「早上好,[DTMF],請致電[DTMF]的辦公室以協調您的帳戶。」

不確定我們是否會將生成的WAV文件分割成若干部分以插入我們的變量,或者在發送消息之前進行一些後處理。

有沒有人有類似這樣的經驗?

感謝

吉姆·斯坦利 黑板連接

+0

您正在使用哪種VoiceXML平臺? – gawi 2013-03-19 21:18:25

回答

0

如果要插入一個暫停,並希望留在UI標籤中,到目前爲止,我要花多大的功夫在IVR,唯一的DTMF與我們可以留在UI中爲*,我們將在按下返回grammar "REPEAT「‘*’,在重複UI條件標籤,你會增加沉默(暫停)wav文件。

記錄部分,我們使用其中映射到一個xslt其中osdmtype = record幫助記錄和識別客戶的答案是/否。
但是,儘管如此,我仍然有點困惑,需要更多的細節。
對不起,無法添加評論,因爲沒有足夠的代表
你可以給我發郵件或我可以在這裏添加更多答案。

+0

通過更多的思考,我所需要的是啓用一個標記,並將dtmfterm屬性設置爲false,但仍然允許用戶通過按#終止錄製。根據一個VXML參考,這是可能的,但在我們的測試中,按#時dtmfterm設置爲false不會停止。 – 2013-03-18 18:09:03

+0

我不確定,但還有另一個屬性'終止符運算符',默認情況下它被設置爲'#',所以我們用來明確地將終止符運算符更新爲''(空白)。意思'#'現在可以在按下時返回另一個不同的語法。只要嘗試檢查這些線路。 – 2013-03-18 18:35:50

+0

嗯,我們沒有在代碼中使用標籤,而且我很難實現它(Qwest是我們的開發IVR提供商)。我試圖下面和獲得 「無效消息類型」 的錯誤.... – 2013-03-18 18:55:14

1

在VoiceXML中,您將使用record element來記錄來自用戶的消息。 記錄元素有一個屬性調用dtmfterm如果設置爲true(默認設置)將終止記錄。如果此屬性設置爲false,則在達到maxtime設置或在期間達到無聲默認時終止錄製。將dtmfterm設置爲false將導致DTMF成爲記錄的一部分。將dtmfterm設置爲true會導致記錄終止。

我已經創建了使用呼叫者創建的錄音的應用程序,但從來沒有一個像您的需求那樣操縱錄音的應用程序。你可以做的是將錄音連接在一起。這是一個QA that shows how to concatenate wav recordings using C#

你將不得不試試的是你是否可以通過語法來捕獲哪個DTMF​​鍵被按下。規範避開了這一點,但它可能與您正在使用的VoiceXML IVR平臺有一些特定關係。如果您知道使用了什麼DTMF鍵,那麼您可以指示用戶按*插入靜音,並按#終止錄製。兩者都會終止錄音,但如果按下*,則VoiceXML中的邏輯會再次回到錄音狀態,如果按#鍵則會完全停止錄音過程。然後,您將使用串聯將這些記錄串起來,並在連接過程中使用帶有預錄靜音的wav文件,該文件插入用戶記錄的片段之間。

從標籤看起來您使用C#和MVC爲您的VoiceXML應用程序。有一個名爲VoiceModel的開源項目,它使使用ASP.NET MVC 4開發VoiceXML應用變得更加容易。您可以在此處登錄read about how it handles recording in this environment

+0

凱文,按*,以使多條記錄的一個想法,我沒有想到的,並且很可能證明我們正在尋找。我會整合這個到我們現有的VoiceXML項目(雖然我會看看VoiceModel備查) - 我假設,目前得到一個文件中的控制器的方法可以得到在HTTP頭中編碼的多個文件。再次感謝! Jim Stanley Blackboard Connect – 2013-03-19 00:33:47

+0

Kevin擁有VoiceXML方面的正確方法。 DTMF音可以通過一些後期音頻處理來執行。 DTMF音調響亮而具體。一些基本的音頻過濾器代碼應該可以幫助您找到音色的開始和停止,然後可以用您自己的音頻替換。 – 2013-03-19 03:06:22