欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

可以在Excel中使用的Office语音识别命令EXCEL基本教程

时间:2022-06-04 09:03:53 其他范文 收藏本文 下载本文

以下文章小编为您整理的可以在Excel中使用的Office语音识别命令EXCEL基本教程,本文共10篇,供大家阅读。

可以在Excel中使用的Office语音识别命令EXCEL基本教程

篇1:可以在Excel中使用的Office语音识别命令EXCEL基本教程

使用Office语音识别功能,我们可能在Office组件中用声音控制软件的使用,今天我们看到的是可以在Excel中使用的语音命令。

可在 Excel 中口述的导航命令:

要执行的任务 可以口述的命令 显示菜单上的所有命令展开

更多按钮在对话框中,移至下一个选项或选项组

Tab 键在对话框中,移至上一个选项或选项组

Shift+Tab 键不保存任何更改,关闭对话框,并关闭菜单Esc 键

取消转到行的结尾End 键

转到末尾转到行的开始Home 键

转到开始左移一格向左

左箭头

箭头向左

左移右移一格向右

右移

右箭头

箭头向右上移一格向上

上移

上箭头

箭头向上下移一格向下

下移

下箭头

箭头向下下移一行换行

回车

新行

下一行

新段落向上滚动

向上翻页向下滚动

向下翻页后退一格

退格输入一个空格空格

空格键删除选定单元格中的选定文本或所有文本

删除移至工作簿中的上一个工作表

上一页移至工作簿中的下一个工作表

下一页显示右击菜单右击

右击菜单

显示右击菜单

上下文菜单

显示上下文菜单如果“自动更正选项”按钮可见,将显示“自动更正选项”按钮菜单自动更正选项

选项按钮如果“粘贴选项”按钮可见,则显示“粘贴选项”按钮菜单粘贴选项

选项按钮如果“插入选项”按钮可见,则显示“插入选项”按钮菜单插入选项

选项按钮如果“智能标记操作”按钮可见,则显示“智能标记操作”按钮菜单智能标记操作

智能标记选项

选项按钮如果“自动填充选项”按钮可见,则显示“自动填充选项”按钮菜单自动填充选项

选项按钮当您在一个单元格中进行编辑时,在单元格内将插入点向右移动一个字右移一字

前进一字

前移一字

向前移一字

下一字

移至右侧的字

Control+右箭头当您在一个单元格中进行编辑时,在单元格内将插入点左移一个字左移一字

后退一字

后移一字

向后移一字

上一字

Control+左箭头键当您在一个单元格中进行编辑时,选择单元格中右侧的下一字Shift+Control+右箭头

选择下一字当您在一个单元格中进行编辑时,选择单元格中左侧的上一字Shift+Control+左箭头

选择上一字在工作表中向上选择一组单元格Shift+Control+上箭头

选择上一行在工作表中向下选择一组单元格Shift+Control+下箭头

选择下一行

可在Excel 中口述的其他命令:

要执行的任务可以口述的命令打开打开

文件打开

打开文件关闭文件退出

关闭工作表加粗粗体打开

打开粗体取消加粗粗体关闭

撤消加粗

关闭粗体

取消加粗倾斜和取消倾斜斜体

斜体

倾斜剪切选定的文本剪切复制复制粘贴粘贴显示 Office 剪贴板复制拷贝

Office 剪贴板

显示剪贴板

显示 office 剪贴板隐藏 Office 剪贴板隐藏剪贴板

隐藏 office 剪贴板撤消撤消恢复恢复

重复保存保存在选定的单元格中添加小数位数增加小数位数从选定的单元格中删除一个小数位减小小数位数自动调整选定单元格的尺寸以适应文字最佳列宽

最佳列宽选项显示任务窗格任务窗格

显示任务窗格

关 键 字:EXCEL

篇2:Office语音识别用户配置文件之创建及使用

Office语音识别用户配置文件存储着识别您的声音的有关信息,您可以为同一台计算机上的多个用户创建配置文件。在具有不同噪音级别的环境中工作或使用几种不同话筒时,您也可以为自己的帐户创建附加配置文件。

新建配置文件

1、在 Microsoft Windows XP控制面板中,单击声音、语音和音频设备,再单击语音,

在 Windows 控制面板中,双击语音图标。

2、单击语音识别选项卡。

3、在识别配置文件下,单击新建并按照配置文件向导中的指令操作。

为当前用户选择一个配置文件

1、在语言栏上,单击工具。

2、指向当前用户,再单击某概要文件。

篇3:在Excel中使用条件格式EXCEL基本教程

自Excel 97之后,Excel具备了条件格式功能,所谓条件格式是指当指定条件为真时,Excel自动应用于单元格的格式,例如,单元格底纹或字体颜色。如果想为某些符合条件的单元格应用某种特殊格式,使用条件格式功能可以比较容易实现。如果再结合使用公式,条件格式就会变得更加有用。

应用实例:某教师想在一个工作表中突出显示期末成绩高于期中成绩的学生,实现后的工作表如图1所示。

图1

在该工作表中,有全体学生两次考试的成绩,条件格式功能将学生中期末成绩高于期中成绩的高亮显示。这种格式是动态的:如果改变考试的分数,格式会自动调整。

下面介绍具体操作步骤。

1.按图1所示创建一个工作表用于练习。

2.选择单元格A2:C11,然后选择菜单命令“格式>条件格式”,在“条件格式” 对话框中的最左边选择“公式”,然后在右侧输入框中输入下列公式(如图2所示):

=$C2>$B2

图2

3.单击“格式”按钮,打开“单元格格式”对话框,为符合条件的单元格设置格式,例如,将单元格的底纹设置为浅绿色,如图3所示,

图3

4.设置完毕单击“确定”按钮,回到原来对话框,再单击“确定”,则现在工作表如图4所示。

图4

条件格式设置中的公式会作用于所选区域,而不只是作用于第2行,这是因为在公式列参数使用了$,这样列就成了绝对引用,而行是相对引用。我们可以在其它某行(如第10行)中单击,然后选择菜单命令“格式>条件格式”,可以看到如图5所示的公式,该行使用的公式为:

=$C10>$B10

图5

至于图1中数据区域的外观与图4略有不同,是因为对这些单元格应用了黑色的边框。从本例可以看出,灵活地运用条件格式,可以帮助我们快速完成一些比较实际的任务,从而提高工作的效率。

关 键 字:EXCEL

篇4:在Word 文档中使用Office剪贴板

通过Office剪贴板,用户可以有选择地粘贴暂存于Office剪贴板中的内容,使粘贴操作更加灵活,在Word 2010文档中使用Office剪贴板的步骤如下所述:

第1步,打开Word 2010文档窗口,选中一部分需要复制或剪切的内容,并执行“复制”或“剪切”命令。然后在“开始”功能区单击“剪贴板”分组右下角的“显示‘Office剪贴板’任务窗格”按钮,如图2010010903所示。

图2010010903 单击“显示‘Office剪贴板’任务窗格”按钮

第2步,在打开的Word 2010“剪贴板”任务窗格中可以看到暂存在Office剪贴板中的项目列表,如果需要粘贴其中一项,只需单击该选项即可,如图2010010904所示,

图2010010904 “Office剪贴板”任务窗格

小提示:如果需要删除Office剪贴板中的其中一项内容或几项内容,可以单击该项目右侧的下拉三角按钮,在打开的下拉菜单中执行“删除”命令,如图2010010905所示。

图2010010905 执行“删除”命令

如果需要删除Office剪贴板中的所有内容,可以单击Office剪贴板内容窗格顶部的“全部清空”按钮,如图2010010906所示。

图2010010906 单击“全部清空”按钮

篇5:在VB中如何使用ping命令。VB

With Visual Basic applications expanding more into the enterprise, basic networking functionality often needs to be duplicated by the application. Using the routine here, you will be able to ping any IP address passed. Ping is a tool that

With Visual Basic applications expanding more into the enterprise, basic networking functionality often needs to be duplicated by the application. Using the routine here, you will be able to ping any IP address passed.

Ping is a tool that helps to verify IP-level connectivity. When troubleshooting, the ping command is used to send an ICMP echo request to a target host name or IP address. Use ping whenever you need to verify that a host computer can connect to the TCP/IP network and network resources. You can also use the ping utility to isolate network hardware problems and incompatible configurations.

It is usually best to verify that a route exists between the local computer and a network host by first using ping and the IP address of the network host to which you want to connect. First try pinging the IP address of the target host to see if it will respond, because this is the simplest case.

The concept in the VB implementation is to pass to a routine the address to ping, and a message under 32 bytes that the ping should return if suclearcase/“ target=”_blank“ >ccessful. This routine does not worked with named domains; it only works when passed the numerical address itself.

To test this application, you must be connected to a network or to your ISP via dial up networking (DUN).

I do not profess to know anything at all about networking or internet functions ... this code  (as a bas file only) was provided to me unsigned. If the author is known, I注释:d appreciate hearing from them so proper credit can be given. Furthermore, it is commented only as far as the author did, with a bit of MSDN descriptions thrown in.

Finally, just to keep the error message lines short (narrow), I注释:ve split them into multiple lines as needed.

BAS Module Code

Add the following code to a BAS module:

--------------------------------------------------------------------------------

Option Explicit

注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:

注释: Copyright ?996- VBnet, Randy Birch, All Rights Reserved.

注释: Some pages may also contain other copyrights by the author.

注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:

注释: You are free to use this code within your own applications,

注释: but you are expressly forbidden from selling or otherwise

注释: distributing this source code without prior written consent.

注释: This includes both posting free demo projects made from this

注释: code as well as reproducing the code in text or html format.

注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:注释:

Private Const IP_SUCCESS As Long = 0

Private Const IP_STATUS_BASE As Long = 11000

Private Const IP_BUF_TOO_SMALL As Long = (11000 + 1)

Private Const IP_DEST_NET_UNREACHABLE As Long = (11000 + 2)

Private Const IP_DEST_HOST_UNREACHABLE As Long = (11000 + 3)

Private Const IP_DEST_PROT_UNREACHABLE As Long = (11000 + 4)

Private Const IP_DEST_PORT_UNREACHABLE As Long = (11000 + 5)

Private Const IP_NO_RESOURCES As Long = (11000 + 6)

Private Const IP_BAD_OPTION As Long = (11000 + 7)

Private Const IP_HW_ERROR As Long = (11000 + 8)

Private Const IP_PACKET_TOO_BIG As Long = (11000 + 9)

Private Const IP_REQ_TIMED_OUT As Long = (11000 + 10)

Private Const IP_BAD_REQ As Long = (11000 + 11)

Private Const IP_BAD_ROUTE As Long = (11000 + 12)

Private Const IP_TTL_EXPIRED_TRANSIT As Long = (11000 + 13)

Private Const IP_TTL_EXPIRED_REASSEM As Long = (11000 + 14)

Private Const IP_PARAM_PROBLEM As Long = (11000 + 15)

Private Const IP_SOURCE_QUENCH As Long = (11000 + 16)

Private Const IP_OPTION_TOO_BIG As Long = (11000 + 17)

Private Const IP_BAD_DESTINATION As Long = (11000 + 18)

Private Const IP_ADDR_DELETED As Long = (11000 + 19)

Private Const IP_SPEC_MTU_CHANGE As Long = (11000 + 20)

Private Const IP_MTU_CHANGE As Long = (11000 + 21)

Private Const IP_UNLOAD As Long = (11000 + 22)

Private Const IP_ADDR_ADDED As Long = (11000 + 23)

Private Const IP_GENERAL_FAILURE As Long = (11000 + 50)

Private Const MAX_IP_STATUS As Long = (11000 + 50)

Private Const IP_PENDING As Long = (11000 + 255)

Private Const PING_TIMEOUT As Long = 500

Private Const WS_VERSION_REQD As Long = &H101

Private ConstMIN_SOCKETS_REQD As Long = 1

Private Const SOCKET_ERROR As Long = -1

Private Const INADDR_NONE As Long = &HFFFFFFFF

Private Const MAX_WSADescription As Long = 256

Private Const MAX_WSASYSStatus As Long = 128

Private Type ICMP_OPTIONS

Ttl             As Byte

Tos             As Byte

Flags           As Byte

OptionsSize     As Byte

OptionsData     As Long

End Type

Public Type ICMP_ECHO_REPLY

Address         As Long

status          As Long

RoundTripTime   As Long

DataSize        As Long 注释:formerly integer

注释:Reserved        As Integer

DataPointer     As Long

Options         As ICMP_OPTIONS

Data            As String * 250

End Type

Private Type WSADATA

wVersion As Integer

wHighVersion As Integer

szDescription(0 To MAX_WSADescription) As Byte

szSystemStatus(0 To MAX_WSASYSStatus) As Byte

wMaxSockets As Long

wMaxUDPDG As Long

dwVendorInfo As Long

End Type

Private Declare Function IcmpCreateFile Lib ”icmp.dll“ As Long

Private Declare Function IcmpCloseHandle Lib ”icmp.dll“ _

(ByVal IcmpHandle As Long) As Long

Private Declare Function IcmpSendEcho Lib ”icmp.dll“ _

(ByVal IcmpHandle As Long, _

ByVal DestinationAddress As Long, _

ByVal RequestData As String, _

ByVal RequestSize As Long, _

ByVal RequestOptions As Long, _

ReplyBuffer As ICMP_ECHO_REPLY, _

ByVal ReplySize As Long, _

ByVal Timeout As Long) As Long

Private Declare Function WSAGetLastError Lib ”WSOCK32.DLL“ () As Long

Private Declare Function WSAStartup Lib ”WSOCK32.DLL“ _

(ByVal wVersionRequired As Long, _

lpWSADATA As WSADATA) As Long

Private Declare Function WSACleanup Lib ”WSOCK32.DLL“ () As Long

Private Declare Function gethostname Lib ”WSOCK32.DLL“ _

(ByVal szHost As String, _

ByVal dwHostLen As Long) As Long

Private Declare Function gethostbyname Lib ”WSOCK32.DLL“ _

(ByVal szHost As String) As Long

Private Declare Sub CopyMemory Lib ”kernel32“ _

Alias ”RtlMoveMemory“ _

(xDest As Any, _

xSource As Any, _

ByVal nbytes As Long)

Private Declare Function inet_addr Lib ”WSOCK32.DLL“ _

(ByVal s As String) As Long

Public Function GetStatusCode(status As Long) As String

Dim msg As String

Select Case status

Case IP_SUCCESS:               msg = ”ip success“

Case INADDR_NONE:              msg = ”inet_addr: bad IP format“

Case IP_BUF_TOO_SMALL:         msg = ”ip buf too_small“

Case IP_DEST_NET_UNREACHABLE:  msg = ”ip dest net unreachable“

Case IP_DEST_HOST_UNREACHABLE: msg = ”ip dest host unreachable“

Case IP_DEST_PROT_UNREACHABLE: msg = ”ip dest prot unreachable“

Case IP_DEST_PORT_UNREACHABLE: msg = ”ip dest port unreachable“

Case IP_NO_RESOURCES:          msg = ”ip no resources“

Case IP_BAD_OPTION:            msg = ”ip bad option“

Case IP_HW_ERROR:              msg = ”ip hw_error“

Case IP_PACKET_TOO_BIG:        msg = ”ip packet too_big“

Case IP_REQ_TIMED_OUT:         msg = ”ip req timed out“

Case IP_BAD_REQ:               msg = ”ip bad req“

Case IP_BAD_ROUTE:             msg = ”ip bad route“

Case IP_TTL_EXPIRED_TRANSIT:   msg = ”ip ttl expired transit“

Case IP_TTL_EXPIRED_REASSEM:   msg = ”ip ttl expired reassem“

Case IP_PARAM_PROBLEM:         msg = ”ip param_problem“

Case IP_SOURCE_QUENCH:         msg = ”ip source quench“

Case IP_OPTION_TOO_BIG:        msg = ”ip option too_big“

Case IP_BAD_DESTINATION:       msg = ”ip bad destination“

Case IP_ADDR_DELETED:          msg = ”ip addr deleted“

Case IP_SPEC_MTU_CHANGE:       msg = ”ip spec mtu change“

Case IP_MTU_CHANGE:            msg = ”ip mtu_change“

Case IP_UNLOAD:                msg = ”ip unload“

Case IP_ADDR_ADDED:            msg = ”ip addr added“

Case IP_GENERAL_FAILURE:       msg = ”ip general failure“

Case IP_PENDING:               msg = ”ip pending“

Case PING_TIMEOUT:             msg = ”ping timeout“

Case Else:                     msg = ”unknown  msg returned“

End Select

GetStatusCode = CStr(status) & ”   [ “ & msg & ” ]“

End Function

Public Function Ping(sAddress As String,

sDataToSend As String,

ECHO As ICMP_ECHO_REPLY) As Long

注释:If Ping succeeds :

注释:.RoundTripTime = time in ms for the ping to complete,

注释:.Data is the data returned (NULL terminated)

注释:.Address is the Ip address that actually replied

注释:.DataSize is the size of the string in .Data

注释:.Status will be 0

注释:

注释:If Ping fails .Status will be the error code

Dim hPort As Long

Dim dwAddress As Long

注释:convert the address into a long representation

dwAddress = inet_addr(sAddress)

注释:if a valid address..

If dwAddress INADDR_NONE Then

注释:open a port

hPort = IcmpCreateFile()

注释:and if successful,

If hPort Then

注释:ping it.

Call IcmpSendEcho(hPort, _

dwAddress, _

sDataToSend, _

Len(sDataToSend), _

0, _

ECHO, _

Len(ECHO), _

PING_TIMEOUT)

注释:return the status as ping succes and close

Ping = ECHO.status

Call IcmpCloseHandle(hPort)

End If

Else:

注释:the address format was probably invalid

Ping = INADDR_NONE

End If

End Function

Public Sub SocketsCleanup()

If WSACleanup() 0 Then

MsgBox ”Windows Sockets error occurred in Cleanup.“,vbExclamation

End If

End Sub

Public Function SocketsInitialize() As Boolean

Dim WSAD As WSADATA

SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS

End Function

注释:--end block--注释:

Form. Code

To a form. add a command button (Command1), two text boxes (Text1, Text2) to the top of the form, and six text boxes in a control array (Text4(0) - Text4(5)) below. The labels are optional. Add the following to the form.:

--------------------------------------------------------------------------------

Option Explicit

Private Sub Command1_Click()

Dim ECHO As ICMP_ECHO_REPLY

Dim pos As Long

Dim success As Long

If SocketsInitialize() Then

注释:ping the ip passing the address, text

注释:to send, and the ECHO structure.

success = Ping((Text1.Text), (Text2.Text), ECHO)

注释:display the results

Text4(0).Text = GetStatusCode(success)

Text4(1).Text = ECHO.Address

Text4(2).Text = ECHO.RoundTripTime & ” ms“

Text4(3).Text = ECHO.DataSize & ” bytes“

If Left$(ECHO.Data, 1) Chr$(0) Then

pos = InStr(ECHO.Data, Chr$(0))

Text4(4).Text = Left$(ECHO.Data, pos - 1)

End If

Text4(5).Text = ECHO.DataPointer

SocketsCleanup

Else

MsgBox ”Windows Sockets for 32 bit Windows “ & _

”environments is not successfully responding.“

End If

End Sub

注释:--end block--注释:

原文转自:www.ltesting.net

篇6:语音识别在家电遥控器中的应用

语音识别在家电遥控器中的应用

摘要:介绍一种适合家电遥控器应用的语音识别算法,该算法使用双模块和两级端点检测方法,能有效地提高识别和稳健性;介绍利用该技术实现的一种新型学习型遥控器,展现了语音识别技术在家电领域的广阔前景。

关键词:语音识别DTWFEDFRED学习型遥控器

家用电器发展的一个重要方面是让用户界面更加人性化,更加方便自然,做到老年人和残疾人可以无障碍地使用。利用语音识别技术实现语音控制是提高家电产品用户界面质量的一条重要途径。本文以语音控制遥控器为例,说明语音识别技术如何应用在家电器领域。

适合家用电器应用的语音识别嵌入式系统结构如图1所示,它由四个部分组成。第一部分为模/数转换部分,其输入端接收输入的语音信号,并将其转化成数字芯片可处理的数字采集信号;在输出端将解码后的语音数字信号转换为音频模拟信号,通过扬声器放声。第二部分为语音识别部分,它的作用是对输入的数字语音词条信号进行分析,识别出词条信号所代表的命令,一般由DSP完成。第三部分语音提示和语音回放部分,它一般也是在DSP中完成的,其核心是对语音信号进行数字压缩编码和解码,目的是提示用户操作并对识别语音的响应,完成人机的语音交互。第四部分是系统控制部分,它将语音识别结果转换成相应的控制信号,并将其输出转换成物理层操作,完成具体功能。语音识别与系统控制的有机结合是完成声控交互的关键,下面将对语音识别算法及遥控系统控制部分作详细的讨论。

1语音识别算法

目前,常以单片机(MCU)或DSP作炎硬件平台的实现消费类电子产品中的语音识别。这类语音识别主要为孤立词识别,它有两种实现方案:一种是基于隐含马尔科夫统计模型(HMM)框架的非特定人识别;另一种是基于动态规划(DP)原理的特定人识别。它们在应用上各有优缺点。HMM非特定人员的优点是用户无需经过训练,可以直接使用;并且具良好的稳定性(即对使用者而言,语音识别性能不会随着时间的延长而降低)。但非特定人语音识别也有其很难克服的缺陷。首先,使用该方法需要预先采集大量的语料库,以便训练出相应的识别模型,这就大大提高了应用此技术的前期成本;其次,非特定人语音识别很难解决汉语中不同方言的问题,限制了它的使用区域;另外还有一个因素也应予以考虑,家电中用于控制的具体命令词语最好不要完全固定,应当根据的用户的习惯而改变,这一点在非特定人识别中几乎不可能实现。因此大多数家电遥控器不适合采用此方案。DP特定人识别的优点是方法简单,对硬件资源要求较低;此外,这一方法中的训练过程也很简单,不需预先采集过多的样本,不仅降低了前期成本,而且可以根据用户习惯,由用户任意定义控制项目的具体命令语句,因而适合大多数家电遥控器的应用。DP特定识别的严重缺点是它的稳健性不理想,对有些人的语音识别率高,有的人识别率却不高;刚训练完时识别率较高,但随着时间的推迟而识别率降低。些缺点往往给用户带来不便。为克服这些缺陷,对传统方法作为改进,使识别性能和稳健性都有显著的提高,取得令人满意的结果。

1.1端点检测方法

影响孤立词识别性能的一个重要因素是端点检测准确性[4]。在10个英语数字的识别测试中,60毫秒的端点误差就使识别率下降3%。对于面向消费类应用的语音识别芯片系统,各种干扰因素更加复杂,使精确检测端点问题更加困难。为此,提出了称为FRED(Frame-basedReadl_timeEndpointDetection)算法[3]的两级端点检测方案,提高端点检测的精度。第一级对输入语音信号,根据其能量和过零率的变化,进行一次简单的实时端点检测,以便去掉静音得到输入语音的时域范围,并且在此基础上进行频谱特征提取工作。第二级根据输入语音频谱的FFT分析结果,分别计算出高频、中频和低频段的能量分布特性,用来判别轻辅音、浊辅音和元音;在确定了元音、浊音段后,再向前后两端扩展搜索包含语音端点的帧。FRED端点检测算法根据语音的本质特征进行端点检测,可以更好地适应环境的干扰和变化,提高端点检测的精度。

在特定人识别中,比较了常用的FED(FastEndpointDetection)[5]和FRED两种端点检测算法的性能。两种算法测试使用相同的数据库,包括7个人的录音,每个人说100个人名,每个人名读3遍。测试中的DP模板训练和识别算法为传统的固定端点动态时间伸缩(DTW)模板匹配算法[4]。两种端点检测算法的识别率测试结果列在表1中。

表1比较FED和FRED端点检测算法对DTW模板匹配识别率的影响

端点检测算法第1人第2人第3人第4人第5人第6人第7人平均FED92.5%87%92.6%95.6%96.2%96.8%100%94.4%FRED94.3%89.9%93.2%99.4%99.4%98.8%100%96.4%

测试结果说明:使用FRED端点检测算法,所有说话人的识别率都有了不同程度的提高。因此,本系统采用这种两级端点检测方案。

1.2模拟匹配算法

DTW是典型的DP特定人算法,为了克服自然语速的差异,用动态时间规整方法将模板特征序列和语音特征序列进行匹配,比较两者之间的失真,得出识别判决的依据。

假设存储的`一个词条模板包括M帧倒谱特征R={r(m);m=1,2,∧,M};识别特征序列包括N帧倒谱特征T={t(n);n=1,2,∧,N}。在r(i)和t(i)之间定义帧局部失真D(i,j),D(i,j)=|r(i)-t(i)|2,通过动态规划过程,在搜索路径中找到累积失真最小的路径,即最优的匹配结果。采用对称形式DTW:

其中S(i,j)是累积失真,D(i,j)是局部失真。

当动态规划过程计算到固定结点(N,M)时,可以计算出该模板动态匹配的归一化距离,识别结果即该归一化距离最小的模板词条:x=argmin{S(N,Mx)}。

为了提高DTW识别算法的识别性能和模板的稳健性,提出了双模板策略,即x=argmin{S(N,M2x)}。第一次输入的训练词条存储为第一个模板,第二次输入的相同训练词条存储为第二个模板,希望每个词条通过两个较稳健的模板来保持较高的识别性能。与上面测试相同,也利用7个人说的100个人名,每个人名含3遍的数据库,比较DTW单模板和双模板的性能差别,结果更在表2中。

表2DTW不同模板数的识别率比较

DTW第1人第2人第3人第4人第5人第6人第7人平均单模板94.3%89.9%93.2%99.4%99.4%98.8%100%96.4%双模板99.4%96.6%98.5%100%100%98.8%100%99.0%

测试结果说明:通过存储两个模板,相当大地提高了DTW识别的性能,其稳健性也有很大的提高。因此,对特定人识别系统,采用DTW双模板是简单有效的策略。

综上所述,该嵌入式语音识别芯片系统采用了改进端点检测性能的FRED算法,12阶Mel频标倒谱参数(MFCC)作为特征参数,使用双模板训练识别策略。通过一系列测试,证明该系统对特定人的识别达到了很好的识别性能,完全可以满足家用电器中声控应用的要求。

2语音控制遥控器设计

目前家用遥控器主要为按键式,并有两种类型:一种是固定码型,每个键对应一种或几种码型,都是生产厂家预先设定好的,用户不能更改;另一种是学习型,具有自我学习遥控码的功能,可由用户定义遥控器的每个键对应的码型,它能够将多种遥控器集于一身,用一个遥控器就可控制多个家电,又可以作为原配遥控器的备份。由于现代家电功能不断增加,上述两种遥控器都有按键过多,用户不易记住每个键的含义等问题。将语音识别技术应用于学习型遥控器,利用语音命令代替按者对命令的记忆和使用,同时省去了大量按键,缩小了遥控器的体积。

语音控制遥控器的硬件框图如图2所示,它由两个独立的模块组成:语音信号处理模块和系统控制模块。

语音信号算是模块由DSP、快闪存储器(FLASH)、编解码器(CODEC)组成。其中DSP是整个语音识别模块的核心,负责语音识别、语音编解码,以及FLASH的读写控制。DSP的优点是运算速度快、内存空间大、数据交换速度快,可用来实现复杂的算法,提高识别率,减小反应延时,得到较高的识别性能。DSP芯片选用AnalogDevices公司的AD2186L,它具有如下特点:①运算速度达40MIPS,且均为高效的单调周期指令;②提供了40K字节的片内RAM,其中8K字(16Bit/字)为数据RAM,8K字(24Bit/字)为程序RAM,最大可达4兆字节的存储区,用于存储数据或程序;③3.3V工作电压,具有多种省电模式。AD2186L既能完成与语音信号算是相关的算法,又适合使用电池作能源的遥控器。FLASH和CODEC也都选用3.3V工作电压的芯片。FLASH为美国ATMEL公司的AT29LV040A(4MBit),它作为系统的存储器,主要用于存放以下内容:提示语音合成所需的参数,特定人训练后的码本数据,DSP系统的应用程序和学习和遥控码数据。CODEC选用美国TI公司的TLV320AC37,用来进行A/D、D/A变换、编码和解码。

系统控制模块由单片机、红外接收发送器、电源管理电路组成。单片机负责整个遥控器的系统控制。单片机作为主控芯片,进行键盘扫描,根据用户通过键盘输入的指令,分别完成学习遥控码;控制DSP进行语音训练、回放、识别;将识别结果转换成相应的遥控码,通过红外发光管发射出去。单片机与DSP之间通过标准的RS232串行协议通讯。

系统的控制软件流程图如图3所示。在使用前,按“学习键”进入学习状态,用户先对学习型遥控器训练语音命令,并使其学习与各语音命令相对应的原理控码型。使用时按“识别键”,进入语音识别状态,等待语音处理模块返回结果,若返回正确的识别结果,则把相应的遥控码发射出去。例如,原电视遥控器数字键“1”对应中央1台,用户的训练命令为“中央1台”,学习了原遥控器的数字键“1”的遥控码,并使其与训练命令“中央1台”对应起来。于是使用时只需对着学习型遥控器的麦克风说出“中央1台”,电视就会切换到中央1台。这样用户不需要记住每个电视台与台号的对应关系,相对于枯燥的频道数字,用户自定义的命令更容易记住。

若连续的30秒无正确的命令则遥控器进入休眠状态,单片机控制电源管理电路切换DSP和FLASH电源,单片机本身也进入休眠状态,直至用户按键,唤醒单片机,再由单片机控制恢复DSP和FLASH供电,重新开始工作。这是因为整个系统中,DSP的功耗最大,长时间不用时,关闭语音信号处理模块,可以显著地降低整个系统的功耗。

从实验室走向市场的过程中,可靠性与成本是遇到的最大挑战。采用双模板的DTW和两组端点检测FRED算法,可在系统资源和反应延时增加极小的情况下,有效地提高识别率和稳健性。该项技术成功地运用在学习型遥控器上,展现了语音识别技术在家电领域的广阔前景。

篇7:在Python中使用模块的教程

作者:廖雪峰 字体:[增加 减小] 类型:

这篇文章主要介绍了在Python中使用模块的教程,示例代码基于Python2.x版本,需要的朋友可以参考下

Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用,

我们以内建的sys模块为例,编写一个hello的模块:

#!/usr/bin/env python# -*- coding: utf-8 -*-‘ a test module ‘__author__ = ‘Michael Liao‘import sysdef test: args = sys.argv if len(args)==1: print ‘Hello, world!‘ elif len(args)==2: print ‘Hello, %s!‘ % args[1] else: print ‘Too many arguments!‘if __name__==‘__main__‘: test()

第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;

第4行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释;

第6行使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

以上就是Python模块的标准文件模板,当然也可以全部删掉不写,但是,按标准办事肯定没错。

后面开始就是真正的代码部分。

你可能注意到了,使用sys模块的第一步,就是导入该模块:

import sys

导入sys模块后,我们就有了变量sys指向该模块,利用sys这个变量,就可以访问sys模块的所有功能。

sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称,例如:

运行python hello.py获得的sys.argv就是[‘hello.py‘];

运行python hello.py Michael获得的sys.argv就是[‘hello.py‘, ‘Michael]。

最后,注意到这两行代码:

if __name__==‘__main__‘: test()

当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。

我们可以用命令行运行hello.py看看效果:

$ python hello.pyHello, world!$ python hello.py MichaelHello, Michael!

如果启动Python交互环境,再导入hello模块:

$ pythonPython 2.7.5 (default, Aug 25 , 00:04:04) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwinType ”help“, ”copyright“, ”credits“ or ”license“ for more information.>>> import hello>>>

导入时,没有打印Hello, word!,因为没有执行test()函数,

调用hello.test()时,才能打印出Hello, word!:

>>> hello.test()Hello, world!

别名

导入模块时,还可以使用别名,这样,可以在运行时根据当前环境选择最合适的模块。比如Python标准库一般会提供StringIO和cStringIO两个库,这两个库的接口和功能是一样的,但是cStringIO是C写的,速度更快,所以,你会经常看到这样的写法:

try: import cStringIO as StringIOexcept ImportError: # 导入失败会捕获到ImportError import StringIO

这样就可以优先导入cStringIO。如果有些平台不提供cStringIO,还可以降级使用StringIO。导入cStringIO时,用import ... as ...指定了别名StringIO,因此,后续代码引用StringIO即可正常工作。

还有类似simplejson这样的库,在Python 2.6之前是独立的第三方库,从2.6开始内置,所以,会有这样的写法:

try: import json # python >= 2.6except ImportError: import simplejson as json # python <= 2.5

由于Python是动态语言,函数签名一致接口就一样,因此,无论导入哪个模块后续代码都能正常工作。

作用域

在一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。

正常的函数和变量名是公开的(public),可以被直接引用,比如:abc,x123,PI等;

类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊变量,hello模块定义的文档注释也可以用特殊变量__doc__访问,我们自己的变量一般不要用这种变量名;

类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;

之所以我们说,private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。

private函数或变量不应该被别人引用,那它们有什么用呢?请看例子:

def _private_1(name): return ‘Hello, %s‘ % namedef _private_2(name): return ‘Hi, %s‘ % namedef greeting(name): if len(name) > 3: return _private_1(name) else: return _private_2(name)

我们在模块里公开greeting()函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting()函数不用关心内部的private函数细节,这也是一种非常有用的代码封装和抽象的方法,即:

外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。

篇8:在Linux系统中使用tar命令压缩和解压文件的教程

linux中的tar命令

tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令,

其常见的文件扩展包括:.tar.gz 和 .tar.bz2, 分别表示通过了gzip或bzip算法进一步进行了压缩。

在本教程中我们会管中窥豹一下在linux桌面或服务器版本中使用tar命令来处理一些创建和解压归档文件的日常工作的例子。

使用tar命令

tar命令在大部分linux系统默认情况下都是可用的,所以你不用单独安装该软件。

tar命令具有两个压缩格式,gzip和bzip,该命令的“z”选项用来指定gzip,“j”选项用来指定bzip。同时也可以创建非压缩归档文件。

1.解压一个tar.gz归档

一般常见的用法是用来解压归档文件,下面的命令将会把文件从一个tar.gz归档文件中解压出来。

代码如下:

$ tar -xvzf tarfile.tar.gz

这里对这些参数做一个简单解释-

x - 解压文件

v - 冗长模式,在解压每个文件时打印出文件的名称。

z - 该文件是一个使用 gzip 压缩的文件。

f - 使用接下来的tar归档来进行操作。

这些就是一些需要记住的重要选项。

解压 tar.bz2/bzip 归档文件

具有bz2扩展名的文件是使用bzip算法进行压缩的,但是tar命令也可以对其进行处理,但是需要通过使用“j”选项来替换“z”选项。

代码如下:

$ tar -xvjf archivefile.tar.bz2

2.将文件解压到一个指定的目录或路径

为了将文件解压到一个指定的目录中,使用“-C”选项来指定路径,此处的“C”是大写“C”。

代码如下:

$ tar -xvzf abc.tar.gz -C /opt/folder/

然后,首先需要确认目标目录是否存在,毕竟tar命令并不会为你创建目录,所以如果目标目录不存在的情况下该命令会失败。

3. 提取出单个文件

为了从一个归档文件中提取出单个文件,只需要将文件名按照以下方式将其放置在命令后面。

代码如下:

$ tar -xz -f abc.tar.gz ”./new/abc.txt“

在上述命令中,可以按照以下方式来指定多个文件。

代码如下:

$ tar -xz -f abc.tar.gz ”./new/cde.txt“ ”./new/abc.txt“

4.使用通配符来解压多个文件

通配符可以用来解压于给定通配符匹配的一批文件,例如所有以”.txt“作为扩展名的文件。

代码如下:

$ tar -xz -f abc.tar.gz --wildcards ”*.txt“

5. 列出并检索tar归档文件中的内容

如果你仅仅想要列出而不是解压tar归档文件的中的内容,使用“-t”(test)选项, 下面的命令用来打印一个使用gzip压缩过的tar归档文件中的内容。

代码如下:

$ tar -tz -f abc.tar.gz

./new/

./new/cde.txt

./new/subdir/

./new/subdir/in.txt

./new/abc.txt

...

可以将输出通过管道定向到grep来搜索一个文件,或者定向到less命令来浏览内容列表。 使用”v“冗长选项将会打印出每个文件的额外详细信息。

对于 tar.bz2/bzip文件,需要使用”j“选项。

结合上述的命令和grep命令来检索归档文件,如下所示。简单吧!

代码如下:

$ tar -tvz -f abc.tar.gz | grep abc.txt

-rw-rw-r-- enlightened/enlightened 0 -01-13 11:40 ./new/abc.txt

6.创建一个tar/tar.gz归档文件

现在我们已经学过了如何解压一个tar归档文件,是时候开始创建一个新的tar归档文件了。tar命令可以用来将所选的文件或整个目录放入到一个归档文件中,以下是相应的样例。

下面的命令使用一个目录来创建一个tar归档文件,它会将该目录中所有的文件和子目录都加入到归档文件中。

代码如下:

$ tar -cvf abc.tar ./new/

./new/

./new/cde.txt

./new/abc.txt

上述命令不会创建一个压缩的的归档文件,只是一个普通的归档文件,只是将多个文件放入到一个归档文件中并没有真正地压缩每个文件,

为了使用压缩,可以分别使用“z”或“j”选项进行gzip或bzip压缩算法。

代码如下:

$ tar -cvzf abc.tar.gz ./new/

文件的扩展名其实并不真正有什么影响。“tar.gz” 和“tgz”是gzip压缩算法压缩文件的常见扩展名。 “tar.bz2”和“tbz”是bzip压缩算法压缩文件的常见扩展名(LCTT 译注:归档是否是压缩的和采用哪种压缩方式并不取决于其扩展名,扩展名只是为了便于辨识。)。

7. 在添加文件之前进行确认

一个有用的选项是“w”,该选项使得tar命令在添加每个文件到归档文件之前来让用户进行确认,有时候这会很有用。

使用该选项时,只有用户输入“y”时的文件才会被加入到归档文件中,如果你不输入任何东西,其默认表示是一个“n”。

代码如下:

# 添加指定文件

$ tar -czw -f abc.tar.gz ./new/*

add ‘./new/abc.txt’?y

add ‘./new/cde.txt’?y

add ‘./new/newfile.txt’?n

add ‘./new/subdir’?y

add ‘./new/subdir/in.txt’?n

#现在列出所有被加入的文件

$ tar -t -f abc.tar.gz

./new/abc.txt

./new/cde.txt

./new/subdir/

8. 加入文件到存在的归档文件中

“r”选项可以被用来将文件加入到已存在的归档文件中,而不用创建一个新的归档文件,下面是一个简单的样例:

代码如下:

$ tar -rv -f abc.tar abc.txt

文件并不能加入到已压缩的归档文件中(gz 或 bzip)。文件只能被加入到普通的归档文件中。

9. 将文件加入到压缩的归档文件中(tar.gz/tar.bz2)

之前已经提到了不可能将文件加入到已压缩的归档文件中,然而依然可以通过简单的一些把戏来完成。使用gunzip命令来解压缩归档文件,然后将文件加入到归档文件中后重新进行压缩。

代码如下:

$ gunzip archive.tar.gz

$ tar -rf archive.tar ./path/to/file

$ gzip archive.tar

对于bzip文件分别使用bzip2和bunzip2。

10.通过tar来进行备份

一个真实的场景是在固定的时间间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份,以下是一个样例 :

代码如下:

$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/

使用cron来运行上述的命令会保持创建类似以下名称的备份文件 :‘archive-20150218.tar.gz‘。

当然,需要确保日益增长的归档文件不会导致磁盘空间的溢出。

11. 在创建归档文件时进行验证

”W“选项可以用来在创建归档文件之后进行验证,以下是一个简单例子。

代码如下:

$ tar -cvW -f abc.tar ./new/

./new/

./new/cde.txt

./new/subdir/

./new/subdir/in.txt

./new/newfile.txt

./new/abc.txt

Verify ./new/

Verify ./new/cde.txt

Verify ./new/subdir/

Verify ./new/subdir/in.txt

Verify ./new/newfile.txt

Verify ./new/abc.txt

需要注意的是验证动作不能在压缩过的归档文件上进行,只能在非压缩的tar归档文件上执行。

这次就先到此为止,可以通过“man tar”命令来查看tar命令的的手册。

篇9:在Docker中使用MySQL的教程

这篇文章主要介绍了在Docker中使用MySQL的教程,介绍了简单的内部搭建步骤,需要的朋友可以参考下

提及虚拟化技术,我可是linuxContainer(LXC)的热爱者,但随着Docker技术的声名鹊起,我想在这展示一下如何使用带有Docker的Mysql

Docker是什么?

实际上,Docker就是LXC的封装。使用起来很有意思。Docker采用LXC来虚拟化每个应用。所以在接下来的示例中,我们会启动chroot环境中一个被封装在自己命名空间内的mysql实例(你也可以设置Cgroups对应的资源)使用Docker的一个亮点就是统一文件系统(aufs)。所以当启动一个Docker容器后,它会记录其aufs总数并只会更新新写入的数据。

Aufs对于大多数应用来说十分有用,并且也能很好地支持数据库测试。在这我只想做个简单的示例-仅仅抛砖引玉,实用性也许并不高- Dockerfile. Dockerfile是Docker镜像的构建脚本

咱们来看看Dockerfile的内容:

FROM ubuntuMAINTAINER erkan yanar ENV DEBIAN_FRONTEND noninteractiveRUN apt-get install -y python-software-propertiesRUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943dbRUN add-apt-repository ‘deb mirror2.hs-esslingen.de/mariadb/repo/10.0/ubuntu precise main‘RUN apt-get updateRUN apt-get install -y mariadb-serverRUN echo ”[mysqld]“>/etc/mysql/conf.d/docker.cnfRUN echo ”bind-address = 0.0.0.0“ >>/etc/mysql/conf.d/docker.cnfRUN echo ”innodb_flush_method = O_DSYNC“ >>/etc/mysql/conf.d/docker.cnfRUN echo ”skip-name-resolve“ >>/etc/mysql/conf.d/docker.cnfRUN echo ”init_file = /etc/mysql/init“ >>/etc/mysql/conf.d/docker.cnfRUN echo ”GRANT ALL ON *.* TO supa@‘%‘ IDENTIFIED BY ‘supa‘;" >/etc/mysql/init EXPOSE 3306USER mysqlENTRYPOINT mysqld

你可以按自己的需求更改,

明白了大意后,可以进一步优化代码。比如,较少运行步骤:)

运行一下看看 (命名为mysql)

> cat $DOCKERFILENAME | docker build -t mysql -

很好!启动51个容器看看:

> time for i in $(seq 10 60 ) ; do docker run -d -p 50$i:3306 mysql ; done .. real 0m27.446suser 0m0.264ssys 0m0.211s

这都是在我笔记本上的结果. 如果使用KVM性能会更好 :)

> docker ps | grep mysqld |wc -l 51> docker ps | head -2CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES6d3a5181cd56 mysql:latest /bin/sh -c mysqld About a minute ago Up About a minute 0.0.0.0:5060->3306/tcp lonely_pare

快来试试吧 o/

篇10:在Excel中怎样使用行列号进行计算EXCEL基本教程

Q:我记得Excel可以使用行号列标进行计算,但是怎么也搞不定,能不能详细介绍一下这个功能?

A:首先,选择“工具”菜单下的“选项”,打开“重新计算”标签,找到“工作簿选项”,勾选其中的“接受公式标志”选项。下面以具体实例进行说明:在工作表的B1和C1单元格中分别输入标题2005和2006;在A3和A4单元格中分别输入“销售”和“成本”;然后在单元格B2至C4之间输入一些数字。要计算并在B5和B6单元格中显示收入情况结果,则你只需在该单元格中输入“=销售-成本”即可,

这是因为在同一列中可以省略列标。

轻松创建公式

要得出2006年与2005年收入之差,则只需在单元格中输入公式“=2006收入-2005收入”。

关 键 字:EXCEL

Office语音识别用户配置文件之创建及使用

语音识别在家电遥控器中的应用

QQ拼音输入法基本使用教程

Word中添加语音识别和手写识别

Word入门动画教程44:在Word中使用Office剪贴板

在Excel中让填充更自如EXCEL基本教程

正确识别手机使用中的假故障

SPCE061A在语音遥控器中的应用

动态表头 Excel中动态表头的制作EXCEL基本教程

Win7系统中鼠标设置成左撇子使用教程

《可以在Excel中使用的Office语音识别命令EXCEL基本教程(锦集10篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

最新推荐
猜你喜欢
点击下载本文文档