System for converting text into voice and storage medium thereof

文档序号:617694 发布日期:2021-05-07 浏览:3次 中文

阅读说明:本技术 将文本转换为语音的系统及其存储介质 (System for converting text into voice and storage medium thereof ) 是由 S.本吉奥 Y.王 Z.杨 Z.陈 Y.吴 I.阿吉奥米詹纳基斯 R.J.韦斯 N.杰 于 2018-03-29 设计创作,主要内容包括:本公开涉及将文本转换为语音的系统及其存储介质。用于从文本生成语音的方法、系统和装置,包括编码在计算机存储介质上的计算机程序。系统之一包括一个或多个计算机和存储指令的一个或多个存储设备,当指令被一个或多个计算机执行时,使得一个或多个计算机实施:序列到序列递归神经网络,其被配置为:接收以特定自然语言的字符序列,并处理该字符序列以生成以特定自然语言的字符序列的言语表达的谱图;以及子系统,其被配置为:接收以特定自然语言的字符序列,并将该字符序列作为输入提供给序列到序列递归神经网络,以获得以特定自然语言的字符序列的言语表达的谱图作为输出。(The present disclosure relates to a system for converting text into voice and a storage medium thereof. Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for generating speech from text. One of the systems includes one or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform: a sequence-to-sequence recurrent neural network configured to: receiving a sequence of characters in a particular natural language and processing the sequence of characters to generate a spectrogram of verbal expression of the sequence of characters in the particular natural language; and a subsystem configured to: a sequence of characters in a particular natural language is received and provided as an input to a sequence-to-sequence recurrent neural network to obtain as an output a spectrogram of a verbal expression of the sequence of characters in the particular natural language.)

1. A computer-implemented method for generating a spectrogram of a speech expression of a sequence of characters of a particular natural language from a sequence of characters of the particular natural language using a text-to-speech conversion system comprising a sequence-to-sequence recurrent neural network, wherein the sequence-to-sequence recurrent neural network comprises an encoder neural network and an attention-based decoder recurrent neural network, the method comprising:

receiving the sequence of characters of the particular natural language at the encoder neural network;

processing the sequence of characters using the encoder neural network to generate a respective encoded representation of each character in the sequence;

receiving a decoder input sequence;

for each decoder input in the sequence of decoder inputs, processing the decoder input and the encoded representation using the attention-based decoder neural network to generate a plurality of frames of the spectrogram; and

generating a waveform from the spectrogram of verbal expressions of the sequence of characters of the particular natural language.

2. The method of claim 1, wherein the encoder neural network comprises an encoder pre-net neural network and an encoder CBHG neural network, and

wherein processing the sequence of characters to generate a respective encoded representation of each character in the sequence using the encoder neural network of the text-to-speech conversion system comprises:

receiving a respective embedding of each character in the sequence using the encoder pre-network neural network,

processing the respective embedding of each character in the sequence using the encoder pre-net neural network to generate a respective transformed embedding of that character, an

Processing the embedding of the respective transformation for each character in the sequence using the encoder CBHG neural network to generate a respective encoded representation of the character.

3. The method of claim 2, wherein the encoder CBHG neural network comprises a 1-D convolutional filter bank, followed by a high-speed channel network, and followed by a bidirectional recurrent neural network.

4. The method of claim 3, wherein the bidirectional recurrent neural network is a gated recurrent unit neural network.

5. The method of claim 3, wherein the encoder CBHG comprises a residual connection between the embedding of the transform and the output of the 1-D convolutional filter bank.

6. The method of claim 3, wherein the 1-D convolutional filter bank comprises a maximum pooling of steps of 1 along a temporal layer.

7. The method of claim 1, wherein the first decoder input in the sequence is a predetermined initial frame.

8. The method of claim 1, wherein the spectrogram is a compressed spectrogram.

9. The method of claim 8, wherein the compressed spectrum is a mel-scale spectrum.

10. The method of claim 8, further comprising:

processing the compressed spectrogram to generate a waveform synthesizer input; and

processing the waveform synthesizer input using a waveform synthesizer of the text-to-speech conversion system to generate the waveform of the verbal expression of the sequence of characters of the input in the particular natural language.

11. The method of claim 1, further comprising:

generating speech using the waveform, an

The generated speech is provided for playback.

12. The method of claim 10, wherein the waveform synthesizer is a trainable spectrogram-to-waveform inverter.

13. The method of claim 10, wherein the waveform synthesizer is a sound synthesizer.

14. The method of claim 10, wherein the waveform synthesizer input is a linear scale spectrogram of the verbal expression of the sequence of characters of the input in the particular natural language.

15. One or more non-transitory computer storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform the method of any one of claims 1-14.

Technical Field

This specification relates to converting text to speech using neural networks.

Background

Neural networks are machine learning models that employ one or more layers of nonlinear elements to predict the output of a received input. Some neural networks include one or more hidden layers in addition to an output layer. The output of each hidden layer is used as an input to the next layer in the network, i.e. the next hidden layer or output layer. Each layer of the network generates an output from the received input in accordance with the current values of the respective set of parameters.

Some neural networks are recurrent neural networks. A recurrent neural network is a neural network that receives an input sequence and generates an output sequence from the input sequence. In particular, the recurrent neural network may use some or all of the internal states of the network from a previous time step in computing the output in the current time step (time step). One example of a recurrent neural network is a Long Short Term (LSTM) neural network that includes one or more LSTM memory blocks. Each LSTM memory block may include one or more cells, each cell including an input gate, a forgetting gate, and an output gate, which allows the cell to store a previous state of the cell, e.g., for use in generating current activations or to be provided to other components of the LSTM neural network.

Disclosure of Invention

This specification describes a system implemented as a computer program that converts text to speech on one or more computers at one or more locations.

In general, one innovative aspect can be embodied in a system that includes one or more computers and one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform: a sequence-to-sequence recurrent neural network configured to: receiving a sequence of characters in a particular natural language and processing the sequence of characters to generate a spectrogram of verbal expression of the sequence of characters in the particular natural language; and a subsystem configured to: a sequence of characters in a particular natural language is received and provided as an input to a sequence-to-sequence recurrent neural network to obtain as an output a spectrogram of a verbal expression of the sequence of characters in the particular natural language. The subsystem may be further configured to generate speech using a spectrogram of verbal expressions of a sequence of characters of an input in a particular natural language; and provides the generated speech for playback.

The subject matter described in this specification can be implemented in particular embodiments to realize one or more of the following advantages. By generating speech at the frame level, the system described in this specification can generate speech from text faster than other systems, while generating speech of comparable or even better quality. In addition, as will be explained in more detail below, the system described herein may reduce model size, training time, and inference time, and may also significantly improve convergence speed. The system described in this specification can generate high quality speech without requiring manually designed linguistic features or complex components, e.g., Hidden Markov Model (HMM) aligners, thereby reducing complexity and using less computational resources while still generating high quality speech.

The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.

Drawings

FIG. 1 illustrates an example text-to-speech conversion system.

FIG. 2 illustrates an example CBHG neural network.

FIG. 3 is a flow diagram of an example process for converting a sequence of characters to speech.

FIG. 4 is a flow diagram of an example process for generating speech from a compressed spectrogram of verbal expressions of a sequence of characters.

Like reference numbers and designations in the various drawings indicate like elements.

Detailed Description

FIG. 1 illustrates an example text-to-speech conversion system 100. The text-to-speech conversion system 100 is an example of a system implemented as a computer program on one or more computers at one or more locations in which the systems, components, and techniques described below may be implemented.

The system 100 includes a subsystem 102 configured to receive input text 104 as input and process the input text 104 to generate speech 120 as output. The input text 104 includes a sequence of characters in a particular natural language. The sequence of characters may include letters, numbers, punctuation marks, and/or other special characters. The input text 104 may be a sequence of characters of different lengths.

To process the input text 104, the subsystem 102 is configured to interact with an end-to-end text-to-speech model 150, which model 150 includes a sequence-to-sequence recurrent neural network 106 (hereinafter "seq 2seq network 106"), a post-processing neural network 108, and a waveform synthesizer 110.

After the subsystem 102 receives input text 104 that includes a sequence of characters in a particular natural language, the subsystem 102 provides the sequence of characters as input to a seq2seq network 106. The seq2seq network 106 is configured to receive the sequence of characters from the subsystem 102 and process the sequence of characters to generate a spectrogram of verbal expression of the sequence of characters in a particular natural language.

In particular, the seq2seq network 106 processes character sequences using (i) an encoder neural network 112, the encoder neural network 112 including an encoder pre-net (pre-net) neural network 114 and an encoder CBHG neural network 116, and (ii) an attention-based decoder recurrent neural network 118. Each character in the sequence of characters can be represented as a one-hot vector and embedded in a continuous vector. That is, the subsystem 102 may represent each character in the sequence as a unique heat vector and then generate an embedding of the character, i.e., a vector or other ordered set of values, before providing the sequence as input to the seq2seq network 106.

The encoder pre-net neural network 114 is configured to receive the respective embedding of each character in the sequence and process the respective embedding of each character to generate a transformed embedding of the character. For example, the encoder pre-net neural network 114 may apply a set of non-linear transforms to each embedding to generate a transformed embedding. In some cases, the encoder pre-net neural network 114 includes a bottleneck neural network layer that takes advantage of losses to increase convergence speed during training and improve the generalization ability of the system.

The encoder CBHG neural network 116 is configured to receive the transformed embedding from the encoder pre-net neural network 206 and process the transformed embedding to generate an encoded representation of the character sequence. The encoder CBHG neural network 116 comprises a CBHG neural network, which will be described in more detail below with reference to fig. 2. The use of the encoder CBHG neural network 112 described herein may reduce overfitting. In addition, it may yield fewer pronunciation errors when compared to, for example, a multi-layer RNN encoder.

The attention-based decoder recurrent neural network 118 (referred to herein as the "decoder neural network 118") is configured to receive a decoder input sequence. For each decoder input in the sequence, the decoder neural network 118 is configured to process the decoder input and the encoded representation generated by the encoder CBHG neural network 116 to generate a plurality of frames of a spectrogram of a sequence of characters. That is, rather than generating (predicting) one frame per decoder step, the decoder neural network 118 generates r frames of a spectrogram, where r is an integer greater than 1. In many cases there is no overlap between sets of r frames.

In particular, in decoder step t, at least the last frame of the r frames generated in decoder step t-1 is fed as input to the decoder neural network 118 in decoder step t + 1. In some embodiments, all r frames generated in decoder step t-1 may be fed as inputs to the decoder neural network 118 in decoder step t + 1. The decoder input for the first decoder step may be an all zero frame (i.e., < GO > frame). Attention to the encoded representation is applied to all decoder steps, e.g., using a conventional attention mechanism. The decoder neural network 118 may use fully connected neural network layers with linear activation to predict r frames in a given decoder step at the same time. For example, to predict 5 frames, each frame being an 80-D (80-dimensional) vector, the decoder neural network 118 predicts a 400-D vector using a fully connected neural network layer with linear activation and reshapes (reshape) the 400-D vector to obtain 5 frames.

By generating r frames in each time step, the decoder neural network 118 divides the total number of decoder steps by r, thereby reducing the model size, training time, and inference time. Furthermore, this technique greatly improves convergence speed, i.e., because it results in a faster (and more stable) alignment between the frame and the encoded representation as learned by the attention mechanism. This is because adjacent speech frames are correlated and each character typically corresponds to multiple frames. Transmitting multiple frames in time steps allows the decoder neural network 118 to take advantage of this quality to quickly learn (i.e., be trained to) how to efficiently process (attribute to) the encoded representation during training.

The decoder neural network 118 may include one or more gated recursion unit neural network layers. To accelerate convergence, the decoder neural network 118 may include one or more vertical residual connections. In some embodiments, the spectrogram is a compressed spectrogram, such as a mel scale (mel scale) spectrogram. Using a compressed spectrogram instead of, for example, the original spectrogram can reduce redundancy, thereby reducing the computations required during training and reasoning.

The post-processing neural network 108 is configured to receive the compressed spectrogram and process the compressed spectrogram to generate a waveform synthesizer input.

To process the compressed spectrogram, the post-processing neural network 108 comprises a CBHG neural network. In particular, the CBHG neural network comprises a 1-D convolutional subnetwork, followed by a high-speed channel network, and then a bidirectional recurrent neural network. The CBHG neural network may include one or more residual connections. The 1-D convolutional subnet may include a 1-D convolutional filter bank followed by a maximum pooling of steps of 1 along the time horizon. In some cases, the bi-directional recurrent neural network is a gated recurrent unit neural network. The CBHG neural network is described in more detail below with reference to fig. 2.

In some embodiments, the post-processing neural network 108 has been trained in conjunction with the sequence-to-sequence recurrent neural network 106. That is, during training, the system 100 (or an external system) trains the post-processing neural network 108 and the seq2seq network 106 on the same training data set using the same neural network training technique (e.g., a gradient descent based training technique). More specifically, the system 100 (or an external system) may back-propagate estimates of the gradient of the loss function to jointly adjust the current values of all network parameters of the post-processing neural network 108 and the seq2seq network 106. Unlike conventional systems that have components that need to be trained individually or in advance, and thus the error of each component may be compounded, systems with the post-processing neural network 108 and the seq2seq network 106 that are jointly trained are more robust (e.g., they have less error and can be trained from scratch). These advantages enable the end-to-end text-to-speech model 150 to be trained on a large amount of rich, expressive, but often noisy data found in the real world.

The waveform synthesizer 110 is configured to receive a waveform synthesizer input and process the waveform synthesizer input to generate a waveform verbalized from a sequence of characters of the input in a particular natural language. In some embodiments, the waveform synthesizer is a Griffin-Lim synthesizer. In some other embodiments, the waveform synthesizer is a sound synthesizer. In some other embodiments, the waveform synthesizer is a trainable spectrogram to waveform inverter.

After waveform synthesizer 110 generates the waveforms, subsystem 102 may generate speech 120 using the waveforms and provide the generated speech 120 for playback, for example, on a user device or provide the generated waveforms to another system to allow the other system to generate and playback speech.

Fig. 2 illustrates an example CBHG neural network 200. The CBHG neural network 200 may be a CBHG neural network included in the encoder CBHG neural network 116 or a CBHG neural network included in the post-processing neural network 108 of FIG. 1.

The CBHG neural network 200 includes a 1-D convolutional subnetwork 208, followed by a high-speed channel network 212, and followed by a bidirectional recurrent neural network 214. The CBHG neural network 200 may include one or more residual connections, e.g., residual connection 210.

The 1-D convolutional subnet 208 may include a 1-D convolutional filter bank 204 followed by a maximum pooling 206 of steps of 1 along the time horizon. The 1-D convolutional filter bank 204 may include K sets of 1-D convolutional filters, where the Kth set includes CkFilters, each filter having a convolution width k.

The 1-D convolutional subnet 208 is configured to receive an input sequence 202, e.g., an embedding of a transform of a character sequence generated by an encoder pre-net neural network. The subnet 208 processes the input sequence using the 1-D convolutional filter bank 204 to generate the convolutional output of the input sequence 202. The subnet 208 then stacks the convolved outputs together and processes the stacked convolved outputs using a maximum pooling 206 of steps 1 along the time horizon to generate a maximum pooled output. The subnet 208 then processes the maximum pooled output using one or more fixed-width 1-D convolution filters to generate a subnet output for the subnet 208.

After generating the subnet output, the residual join 210 is configured to combine the subnet output with the original input sequence 202 to generate a convolved output.

The high-speed channel network 212 and the bi-directional recurrent neural network 214 are then configured to process the convolved outputs to generate an encoded representation of the character sequence.

In particular, the high-speed channel network 212 is configured to process the convolved outputs to generate a high-level feature representation of the character sequence. In some embodiments, the high-speed channel network includes one or more fully connected neural network layers.

The bi-directional recurrent neural network 214 is configured to process the high-level feature representation to generate a sequential feature representation of the character sequence. The sequence feature represents a local structure representing a sequence of characters around a particular character. The sequential feature representation may comprise a sequence of feature vectors. In some embodiments, the bidirectional recurrent neural network is a gated recurrent unit neural network.

During training, one or more convolution filters of 1-D convolution subnet 208 may be trained using a batch normalization method, which is disclosed in "batch normalization" published in 2015 at s.ioffe and c.szegydy: speeding up deep network training (adaptive prediction shift) by reducing internal covariate offset is described in detail in Batch normalization, by reducing internal covariate shift, rXIv prediction arXIv: 1502.03167.

In some embodiments, one or more convolution filters in the CBHG neural network 200 are non-causal convolution filters, i.e., convolution filters that can convolve with the surrounding input in two directions (e.g.,. T-1, T-2, and T +1, T +2,. et cetera) in a given time step T. Instead, the causal convolution filter can only convolve with the previous input (. T-1, T-2, etc.).

In some other embodiments, all convolution filters in the CBHG neural network 200 are non-causal convolution filters.

The use of non-causal convolution filters, batch normalization, residual concatenation, and maximum pooling with a stride of 1 along the time horizon improves the generalization capability of the CBHG neural network 200 to the input sequence and thus enables the text-to-speech conversion system to generate high quality speech.

FIG. 3 is a flow diagram of an example process 300 for converting a sequence of characters to speech. For convenience, process 300 will be described as being performed by a system of one or more computers located at one or more locations. For example, a text-to-speech conversion system (e.g., text-to-speech conversion system 100 of fig. 1) or a subsystem of a text-to-speech conversion system (e.g., subsystem 102 of fig. 1) may be suitably programmed to perform process 300.

The system receives a sequence of characters in a particular natural language (step 302).

The system then provides the character sequence as input to a sequence-to-sequence (seq2seq) recurrent neural network to obtain as output a spectrogram of verbal expression of the character sequence in the particular natural language (step 304). In some embodiments, the spectrum is a compressed spectrum, e.g., a mel-scale spectrum.

In particular, after receiving the character sequence from the system, the seq2seq recurrent neural network processes the character sequence to generate a respective encoded representation of each character in the sequence using an encoder neural network that includes an encoder pre-net neural network and an encoder CBHG neural network.

More specifically, each character in the sequence of characters may be represented as a unique heat vector and embedded in a continuous vector. The encoder pre-net neural network receives the respective embedding of each character in the sequence and processes the respective embedding of each character in the sequence to generate a transformed embedding of the character using the encoder pre-net neural network. For example, the encoder pre-net neural network may apply a set of non-linear transforms to each embedding to generate an embedding of the transforms. The encoder CBHG neural network then receives the transformed embedding from the encoder pre-net neural network and processes the transformed embedding to generate an encoded representation of the character sequence.

To generate a spectrogram of a verbal expression of a sequence of characters, a seq2seq recurrent neural network processes the encoded representation using an attention-based decoder recurrent neural network. In particular, an attention-based decoder recurrent neural network receives a decoder input sequence. The first decoder input in the sequence is a predetermined initial frame. For each decoder input in the sequence, an attention-based decoder recurrent neural network processes the decoder input and the encoded representation to generate r frames of the spectrogram, where r is an integer greater than 1. One or more of the generated r frames may be used as the next decoder input in the sequence. In other words, each other decoder input in the sequence is one or more of the r frames generated by processing the decoder input preceding the decoder input in the sequence.

Thus, the output of the attention-based decoder recurrent neural network comprises a plurality of sets of frames forming a spectrogram, wherein each set comprises r frames. In many cases there is no overlap between sets of r frames. By generating r frames at a time, the total number of decoder steps performed by the attention-based decoder recurrent neural network is reduced by a factor of r, thereby reducing training and reasoning time. This technique also helps to improve the convergence speed and learning rate of the attention-based decoder recurrent neural network and system as a whole.

The system generates speech using a spectrogram expressed in speech for a sequence of characters in a particular natural language (step 306).

In some implementations, when the spectrogram is a compressed spectrogram, the system may generate a waveform from the compressed spectrogram and use the waveform to generate speech. The generation of speech from a compressed spectrogram is described in more detail below with reference to FIG. 4.

The system then provides the generated speech for playback (step 308). For example, the system sends the generated speech to the user device for playback over a data communication network.

FIG. 4 is a flow diagram of an example process 400 for generating speech from a compressed spectrogram of verbal expressions of a sequence of characters. For convenience, process 400 will be described as being performed by a system of one or more computers located at one or more locations. For example, a text-to-speech conversion system (e.g., text-to-speech conversion system 100 of fig. 1) or a subsystem of a text-to-speech conversion system (e.g., subsystem 102 of fig. 1) may be suitably programmed to perform process 400.

The system receives a compressed spectrogram of verbal expressions of a sequence of characters in a particular natural language (step 402).

The system then provides the compressed spectrogram as an input to a post-processing neural network to obtain a waveform synthesizer input (step 404). In some cases, the waveform synthesizer input is a linear scale spectrogram expressed in speech of an input character sequence of a particular natural language.

After obtaining the waveform synthesizer input, the system provides the waveform synthesizer input as input to the waveform synthesizer (step 406). The waveform synthesizer processes the waveform synthesizer input to generate a waveform. In some embodiments, the waveform synthesizer is a Griffin-Lim synthesizer that synthesizes waveforms from a waveform synthesizer input (such as a linear scale spectrogram) using a Griffin-Lim algorithm. In some other embodiments, the waveform synthesizer is a sound synthesizer. In some other embodiments, the waveform synthesizer is a trainable spectrogram to waveform inverter.

The system then generates speech using the waveform, i.e., generates sound represented by the waveform (step 408). The system may then provide the generated speech for playback, for example, on the user device. In some implementations, the system can provide the waveform to another system to allow the other system to generate and play back speech.

A system of one or more computers is configured to perform a particular operation or action, meaning that the system has installed thereon software, firmware, hardware, or a combination thereof that in operation causes the system to perform the operation or action. One or more computer programs are configured to perform specific operations or actions, which means that the one or more programs include instructions, which when executed by a data processing apparatus, cause the apparatus to perform the operations or actions.

Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, tangibly embodied computer software or firmware, computer hardware (including the structures disclosed in this specification and their structural equivalents), or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a tangible, non-transitory program carrier for execution by, or to control the operation of, data processing apparatus. Alternatively or additionally, the program instructions may be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by the data processing apparatus. The computer storage medium may be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them. However, computer storage media are not propagated signals.

The term "data processing apparatus" encompasses various apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can comprise special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

A computer program (which may also be referred to or described as a program, software application, module, software module, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

As used in this specification, "engine" or "software engine" refers to a software-implemented input/output system that provides output that is different from input. An engine may be an encoded functional block, such as a library, a platform, a Software Development Kit (SDK), or an object. Each engine may be implemented on any suitable type of computing device, for example, a server, a mobile phone, a tablet computer, a notebook computer, a music player, an e-book reader, a laptop or desktop computer, a PDA, a smart phone, or other fixed or portable device that includes one or more processors and computer-readable media. Further, two or more engines may be implemented on the same computing device or on different computing devices.

The processes and logic flows described in this specification can be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). For example, the processes and logic flows may be performed by a Graphics Processing Unit (GPU), and the apparatus may also be implemented as a Graphics Processing Unit (GPU).

For example, a computer suitable for running a computer program may be based on a general purpose or special purpose microprocessor or both, or any other type of central processing unit. Generally, a central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a central processing unit for executing or executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer does not require such a device. Furthermore, a computer may be embedded in another device, e.g., a mobile telephone, a Personal Digital Assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable memory device, e.g., a Universal Serial Bus (USB) flash drive, to name a few.

Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display), for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other types of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including audible, speech, or tactile input. In addition, the computer may interact with the user by transmitting and receiving documents to and from the device used by the user; for example, by transmitting a web page to a web browser on the user's client device in response to a request received from the web browser.

Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification), or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), e.g., the Internet.

The computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated within a single software product or packaged into multiple software products.

Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may be advantageous.

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:智能语音设备的语音交互方法、装置、设备、介质及产品

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!