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

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

  • 相关阅读:
    nodejs内存溢出解决方法
    mongodb副本集与分片结合
    node加密
    守护进程,互斥锁,IPC,队列,生产者与消费者模型
    并发编程
    粘包问题
    socket编程
    xml模块
    网络编程
    异常处理
  • 原文地址:https://www.cnblogs.com/zpy1993-09/p/13074203.html
Copyright © 2020-2023  润新知