人机交互 TTS语音朗读.docx

上传人:b****5 文档编号:6098426 上传时间:2023-01-03 格式:DOCX 页数:9 大小:162.69KB
下载 相关 举报
人机交互 TTS语音朗读.docx_第1页
第1页 / 共9页
人机交互 TTS语音朗读.docx_第2页
第2页 / 共9页
人机交互 TTS语音朗读.docx_第3页
第3页 / 共9页
人机交互 TTS语音朗读.docx_第4页
第4页 / 共9页
人机交互 TTS语音朗读.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

人机交互 TTS语音朗读.docx

《人机交互 TTS语音朗读.docx》由会员分享,可在线阅读,更多相关《人机交互 TTS语音朗读.docx(9页珍藏版)》请在冰豆网上搜索。

人机交互 TTS语音朗读.docx

人机交互TTS语音朗读

人机交互大作业报告

--------TTS中文语音朗读

 

 

 

摘要:

随着计算机技术的发展,自动化的技术已经普及了人们的生活以及一些残障人士的日常操作。

此次作业的制作目的就是考虑到残疾人不能说话的问题,在能操作电脑的情况下能与正常人交流。

引言:

TTS中文语音朗读主要使用了VS2012结合WPF的技术,实现了界面与代码相分离,能够更好的学习一方面的知识。

本次课题的代码编写主要使用VS中的一些知识,使运行结果能够一目了然。

计算机的发展必然带动其他行业以及事业的兴起,使社会更加平等。

1.项目准备

1.1开发平台

vs2012开发平台

1.2微软的语音软件库

2.开发目标

2.1制作一个语音软件,可以朗读文字

2.2具体功能

支持选择播放设备

支持朗读语速选择

支持音量选择

3.开发过程

3.1认识WPF

WPF(WindowsPresentationFoundation)是微软推出的基于WindowsVista的用户界面框架,属于.NETFramework3.0的一部分。

它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

WPF是微软新一代图形系统,运行在.NETFramework3.0及以上版本下,为用户界面、2D/3D图形、文档和媒体提供了统一的描述和操作方法。

基于DirectX9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,WPF是Windows操作系统中一次重大变革,与早期的GDI+/GDI不同。

WPF是基于DirectX引擎的,支持GPU硬件加速,在不支持硬件加速时也可以使用软件绘制。

高级别的线程进行绘制,提高使用者的体验。

自动识别显示器分辨率并进行缩放。

而Vista就是一个非常典型的例子。

3.2新建WpfSpeechDemo工程

3.3建立软件界面

 

过程:

1.先用ComboBox、Label、Button、TextBox等组件搭建初始框架,形成最初的简单页面。

2.使用silider控件来实现语速、音量的调节。

IsSelectionRangeEnabled设置为true之后,实现小滑块调节,即可控制语速的快慢以及音量的高低。

空间中的其他组件可以对部分进行美化,比如垂直刻度、刻度条。

3.语音库(引擎)支持中文和英文两种语言。

中文可以识别文本框里的中文和英文,而英文只可以识别文本框中的英文,遇到其他语种会跳过。

4.语音输出方式只使用电脑自带的扬声器进行朗读。

5.最后在文本框中输入的文字经过后台操作之后可以通过扬声器播放。

6.整体界面使用Grid控件,对页面的布局进行操控,使控件可以以等距离放置,使界面看上去整洁美观。

 

4.分析

4.1运行结果分析

当一起输入英文和中文时,选用英文朗读时读取中文会有错误读音;

这个程序运行的时候停止按钮在某些电脑上并不能够实现其功能;

音量和语速的调节识别比较准确,也未出现过错误;

4.2优缺点分析

优点:

界面简单易操作,不需要太繁琐的电脑知识,对残障人士来说简单易懂。

基本操作都能实现。

缺点:

部分功能对硬件的识别较高,未能多加改进。

 

5.总结

这次的课堂Siminer和最后的大作业使我对人机界面的操作及编写有了一定的认知,收货最大的是最后大作业中还自己学习了一些关于WPF的知识,虽然不多,但是一点点的积累使得以后会有一定的知识累积。

因为WPF是一门从未接触过的技术,所以在最后的作业中,后台代码部分并未能参与多少,只限于查找资料。

最后,要感谢毛老师的指导以及对这款软件提出的意见,最感谢的还是对我们技术上的指导!

 

6.代码

6.1界面代码

Class="WpfSpeechDemo.MainWindow"

xmlns="

xmlns:

x="

Title="WpfSpeechDemo"Height="350"Width="525">

Name="cmbVoices"HorizontalAlignment="Left"Margin="86,23,0,0"VerticalAlignment="Top"Width="222"SelectionChanged="cmbVoices_SelectionChanged"/>

Name="cmbAudioOut"HorizontalAlignment="Left"Margin="86,69,0,0"VerticalAlignment="Top"Width="222"SelectionChanged="cmbAudioOut_SelectionChanged"/>

"HorizontalAlignment="Left"Margin="0,23,0,0"VerticalAlignment="Top"Width="81"/>

"HorizontalAlignment="Left"Margin="0,65,0,0"VerticalAlignment="Top"Width="81"/>

">

Name="tbarRate"Orientation="Vertical"

Minimum="0"

Maximum="10"

IsMoveToPointEnabled="True"

AutoToolTipPrecision="2"AutoToolTipPlacement="BottomRight"

TickPlacement="BottomRight"

Ticks="1,2,3,4,5,6,7,8,9,10"

IsSelectionRangeEnabled="true"

SelectionStart="1"SelectionEnd="9"

HorizontalAlignment="Left"Margin="357,51,0,0"VerticalAlignment="Top"Height="103"ValueChanged="tbarRate_ValueChanged"Background="#FFEFEBF0"/>

Name="trbVolume"Orientation="Vertical"

Minimum="0"

Maximum="10"

IsMoveToPointEnabled="True"

AutoToolTipPrecision="2"AutoToolTipPlacement="BottomRight"

TickPlacement="BottomRight"

Ticks="1,2,3,4,5,6,7,8,9,10"

IsSelectionRangeEnabled="true"

SelectionStart="1"SelectionEnd="9"

HorizontalAlignment="Left"Margin="426,51,0,0"VerticalAlignment="Top"Height="103"ValueChanged="trbVolume_ValueChanged"Background="#FFF2EFF3"/>

6.2功能代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows;

usingSystem.Windows.Controls;

usingSystem.Windows.Data;

usingSystem.Windows.Documents;

usingSystem.Windows.Input;

usingSystem.Windows.Media;

usingSystem.Windows.Media.Imaging;

usingSystem.Windows.Navigation;

usingSystem.Windows.Shapes;

usingDotNetSpeech;//cs文件中引入库

namespaceWpfSpeechDemo

{

///

///MainWindow.xaml的交互逻辑

///

publicpartialclassMainWindow:

Window

{

SpVoicespeech=newSpVoice();

intspeechRate=0;

intvolume=70;

publicMainWindow()

{

InitializeComponent();

init();

}

privatevoidinit()

{

//初始化语音引擎列表

foreach(ISpeechObjectTokenTokeninspeech.GetVoices(string.Empty,string.Empty))

{

cmbVoices.Items.Add(Token.GetDescription(49));

}

//取得音频输出列表

foreach(ISpeechObjectTokenAudioOutinspeech.GetAudioOutputs(string.Empty,string.Empty))

{

cmbAudioOut.Items.Add(AudioOut.GetDescription(49));

}

cmbVoices.SelectedIndex=0;

cmbAudioOut.SelectedIndex=0;

tbarRate.Value=speechRate;

trbVolume.Value=volume;

}

privatevoidtbarRate_Scroll(objectsender,EventArgse)

{

speech.Rate=(int)tbarRate.Value;

}

privatevoidtrbVolume_Scroll(objectsender,EventArgse)

{

speech.Volume=(int)trbVolume.Value;

}

privatevoidcmbVoices_SelectionChanged(objectsender,SelectionChangedEventArgse)

{

speech.Voice=speech.GetVoices(string.Empty,string.Empty).Item(cmbVoices.SelectedIndex);

}

privatevoidcmbAudioOut_SelectionChanged(objectsender,SelectionChangedEventArgse)

{

speech.AudioOutput=speech.GetAudioOutputs(string.Empty,string.Empty).Item(cmbAudioOut.SelectedIndex);

}

privatevoidbt_speek_Click(objectsender,EventArgse)

{

//终止先前朗读,如果有

speech.Speak("",SpeechVoiceSpeakFlags.SVSFlagsAsync);

speech.Speak(tbspeech.Text,SpeechVoiceSpeakFlags.SVSFlagsAsync);

}

privatevoidbt_stop_Click(objectsender,EventArgse)

{

speech.Speak("",SpeechVoiceSpeakFlags.SVSFlagsAsync);

}

privatevoidtbarRate_ValueChanged(objectsender,RoutedPropertyChangedEventArgse)

{

speech.Rate=(int)e.NewValue;

}

privatevoidtrbVolume_ValueChanged(objectsender,RoutedPropertyChangedEventArgse)

{

speech.Volume=(int)e.NewValue;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1