酥脆可口的蘿莉音來了~~~

  • 2019 年 10 月 29 日
  • 筆記

今天換個口味,給大家介紹一個好玩的東西 —— tts語音合成。matlab自身不帶相關語音合成函數,這裡需要使用微軟自帶SpVoice,通過創建com對象,調用SpVoice語音合成方法來實現發生功能,可以通過文字內容自動選擇中文發音或者英文發音。

為了方便文本輸入,使用uicontrol函數創建了操作介面,由於能力有限,可惜沒有能夠實現暫停和繼續功能,要是有懂的小夥伴,歡迎給小編留言。

(程式運行後介面)

clc;clear;close all;  % 創建COM.SAPI_SpVoice對象  vCom = actxserver('SAPI.SpVoice');  %% 創建介面  scr = get(groot,'ScreenSize');  pict=figure('position',[scr(3)/2-200,scr(4)/2-300, 500,450],'name','matlab愛好者公眾號傾情推出 (ID:matlabaihaozhe)','NumberTitle','off','menubar','none','toolbar','none',...      'Resize','off');  text01=uicontrol(pict,'style','text','position',[0 435 500 10],'string','******************************************************************************************','FontSize',10,'ForegroundColor','b');  text02=uicontrol(pict,'style','text','position',[95 395 320 40],'string','文本閱讀器','FontSize',20,'ForegroundColor','r');  text03=uicontrol(pict,'style','text','position',[0 392 500 10],'string','******************************************************************************************','FontSize',10,'ForegroundColor','b');  text1 = uicontrol(pict,'style','text','position',[85 355 330 30],'string','~~~請在下方輸入文字,點擊閱讀~~~','FontSize',12,'ForegroundColor','k');  con = uicontrol(pict,'style','edit','position',[25 57 450 300],'string','喜歡、愛好、想學matlab編程,關注matlab愛好者是您不錯的選擇!還沒關注,還沒關注,還沒關注,趕快關注!','FontSize',15,'ForegroundColor','r','max',inf,'HorizontalAlignment','left');    %% 執行程式  sV = uicontrol(pict,'style','text','position',[20 18 120 30],'string','','FontSize',14,'ForegroundColor','b');  volC = uicontrol(pict,'Style','slider','position',[145 20 100 30],'string','','CallBack','showVolume(volC,sV);');  volC.Min = 0;  volC.Max = 100;  volC.Value = 50;  showVolume(volC,sV);  uicontrol(pict,'style','pushbutton','position',[260 20 100 30],'string','閱讀','FontSize',14,'ForegroundColor','b','CallBack',...      'speakText(con,vCom,volC);');  uicontrol(pict,'style','pushbutton','position',[380 20 100 30],'string','退出','FontSize',14,'ForegroundColor','r','CallBack','delete(vCom); clear vCom; delete(pict);close();');

這個聲音好聽嗎?哈哈哈~~~

,要是覺得不好聽,就在下方狂噴小編吧!在公眾號中回復「文本閱讀」即可獲取所有相關文件,還等什麼,趕緊回復獲取吧!

參考資料:

[1] https://blog.csdn.net/weixin_34162401/article/details/85481046

[2] http://blog.sina.com.cn/s/blog_54be98b80102v5yw.html

[3] https://blog.csdn.net/u014646950/article/details/54933955

封面圖片:由GraphicMama-team在Pixabay上發布