.net core 文字轉語音並實現語音播放


       去年公司讓給平台做一個語音告警提示,我當時想先通過在線文字轉語音,然后拿到語音放到工程里,直接播放就行了。但是看到需求我才發現這個語音告警是動態的,每次告警轉語音的文字不確定,所以只能做一個動態文子轉語音直接播放。搞了一天,就搞定了。試了一下,效果還可以,就是說話聲音有點呆板。

   其實很簡單,就是調用百度語音接口實現播放就行了。(http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=0&per=0&text=)

   

 <div>
        <input type="text" hidden="hidden" id="ttsText">
        <input type="button" id="tts_btn" hidden="hidden" onclick="doTTS()" value="播放">
    </div>
 <script type="text/javascript">

        function doTTS() {
            var ttsDiv = document.getElementById('bdtts_div_id');
            var ttsAudio = document.getElementById('tts_autio_id');
            var ttsText = document.getElementById('ttsText').value;

            // 這樣為什么替換不了播放內容
            /*var ssrcc = 'http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=10&text='+ttsText;
            document.getElementById('tts_source_id').src=ssrcc;*/

            // 這樣就可實現播放內容的替換了
            ttsDiv.removeChild(ttsAudio);
            var au1 = '<audio id="tts_autio_id" autoplay="autoplay">';
            var sss = '<source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=9&per=0&text=?' + ttsText + '" type="audio/mpeg">';
            var eee = '<embed id="tts_embed_id" height="0" width="0" src="">';
            var au2 = '</audio>';
            ttsDiv.innerHTML = au1 + sss + eee + au2;

            ttsAudio = document.getElementById('tts_autio_id');

            ttsAudio.play();
        }
</script>

lan:固定值zh。語言選擇,目前只有中英文混合模式,填寫固定值zh
ie:編碼方式
spd:語速,取值0-9,默認為5中語速
text:合成的文本,使用UTF-8編碼。小於512個中文字或者英文數字。(文本在百度服務器內轉換為GBK后,長度必須小於1024字節)

這樣就能實現動態文字轉語音播放了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM