.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字节)

这样就能实现动态文字转语音播放了。

.net core 文字转语音并实现语音播放

上一篇:Asp.Net Core Log4Net 配置分多个文件记录日志(不同日志级别)


下一篇:编写php自定义扩展