Automatic speech-to-text engine selection
A system and method for selecting a speech-to-text engine are disclosed. The method includes selecting, by an engine selection component, at least two speech-to-text engines to decode a portion of computer-readable speech data. The portion of speech data can be decoded simultaneously by the selected speech-to-text engines for a designated length of time. In some embodiments portions of the speech data can be simultaneously decoded with selected speech-to-text engines at periodic intervals. An accuracy of decoding can be determined for each selected speech-to-text engine by an accuracy testing component. Additionally, the relative accuracies and speeds of the selected speech-to-text engines can be compared by an output comparison component. The engine selection component can then select the most accurate speech-to-text engine accurate to decode a next portion of speech data. Further, the engine selection module may select a speech-to-text engine that meets or exceeds a speed and/or accuracy threshold.
1. A method of selecting a speech-to-text engine, comprising:
receiving computer-readable speech data;
selecting, at a first predetermined time, a first set of at least two speech-to-text engines to decode a first portion of the computer-readable speech data, wherein the first predetermined time is stored in adjustable decoding settings;
decoding simultaneously, for a predetermined duration, the first portion of the computer-readable speech data with the first set of at least two speech-to-text engines wherein the predetermined duration is stored in the adjustable decoding settings;
determining an accuracy of decoding for each of the first set of at least two speech-to-text engines;
selecting a speech-to-text engine from the first set of at least two speech-to-text engines to decode second portion of the computer-readable speech data;
decoding the second portion of the computer-readable speech data with the speech-to-text engine selected from the first set of the at least two speech-to-text engines;
selecting, at a second predetermined time, a second set of at least two speech-to-text engines to decode a third portion of the computer readable speech data, wherein the second predetermined time is stored in the adjustable decoding settings;
decoding simultaneously, for the predetermined duration, the third portion of the computer-readable speech data with the second set of at least two speech-to-text engines;
determining an accuracy of decoding for each of the second set of at least two speech-to-text engines;
selecting a speech-to-text engine from the second set of at least two speech-to-text engines to decode a fourth portion of the computer-readable speech data; and
decoding the fourth portion of the computer-readable speech data with the speech-to-text engine selected from the second set of at least two speech-to-text engines.
2. The method of claim 1 , wherein the computer-readable speech data is spoken language recorded during a telephone call.
3. The method of claim 1 , wherein a speed of decoding of a first one of the first set of at least two speech-to-text engines differs from a second one of the first set of at least two speech-to-text engines.
4. The method of claim 1 , wherein an accuracy of decoding of a first one of the first set of at least two speech-to-text engines differs from a second one of the first set of at least two speech-to-text engines.
5. The method of claim 1 , wherein the selecting the speech-to-text engine from the first set of at least two speech-to-text engines selects a speech-to-text engine having a higher accuracy of decoding.
6. The method of claim 1 , wherein the selecting the speech-to-text engine from the first set of at least two speech-to-text engines selects a speech-to-text engine that meets or exceeds a speed threshold.
7. The method of claim 1 , wherein the selecting the speech-to-text engine from the first set of at least two speech-to-text engines selects a speech-to-text engine that meets or exceeds an accuracy threshold.
8. The method of claim 1 , further comprising decoding simultaneously a predetermined number of subsequent portions of the computer-readable speech data with at least two subsequently selected speech-to-text engines at periodic intervals of a predetermined duration, wherein the number of subsequent portions and the predetermined interval duration are stored in the adjustable decoding settings.
9. The method of claim 1 , wherein the at least two speech-to-text engines convert the computer-readable speech data to text data.
10. A system comprising:
at least one processor;
at least one memory component;
at least two speech-to-text engines configured to decode computer-readable speech data, wherein the speech-to-text engines decode the computer-readable speech data for a predetermined duration that is stored in adjustable decoding settings;
an accuracy testing component configured to determine an accuracy of decoding for each of the at least two speech-to-text engines; and
an output comparison component configured to determine a difference in the accuracy of decoding of the at least two speech-to-text engines; and
an engine selection component configured to select at least one of the at least two speech-to-text engines to decode the computer-readable speech data based, at least in part, on the difference in the accuracy of decoding of the at least two speech-to-text engines determined by the output comparison component, wherein the engine selection component selects the at least one of the at least two speech-to-text engines at least one predetermined time that is stored in the adjustable decoding settings.
11. The system of claim 10 , wherein a speed of decoding of a first one of the at least two speech-to-text engines differs from a second one of the at least two speech-to-text engines.
12. The system of claim 10 , wherein an accuracy of decoding of a first one of the at least two speech-to-text engines differs from a second one of the at least two speech-to-text engines.
13. The system of claim 10 , wherein the engine selection component selects a speech-to-text engine having a higher accuracy of decoding.
14. The system of claim 10 , wherein the engine selection component selects a speech-to-text engine that meets or exceeds a speed threshold.
15. The system of claim 10 , wherein the engine selection component selects a speech-to-text engine that meets or exceeds an accuracy threshold.
16. The system of claim 10 , further configured to decode simultaneously a predetermined number of subsequent portions of the computer-readable speech data with the at least two speech-to-text engines at periodic intervals of a predetermined duration, wherein the number of subsequent portions and the predetermined interval duration are stored in the adjustable decoding settings.
17. A computer program product for selecting a speech-to-text engine, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the device to perform a method comprising:
receiving computer-readable speech data;
selecting, at a first predetermined time, a first set of at least two speech-to-text engines to decode a first portion of the computer-readable speech data, wherein the first predetermined time is stored in adjustable decoding setting;
decoding simultaneously, for a predetermined duration, the first portion of the computer-readable speech data with the first set of at least two speech-to-text engines, wherein the predetermined duration is stored in the adjustable decoding settings;
determining an accuracy of decoding for each of the first set of at least two speech-to-text engines;
selecting a speech-to-text engine from the first set of at least two speech-to-text engines to decode a second portion of the computer-readable speech data;
decoding the second portion of the computer-readable speech data with the speech-to-text engine selected from the first set of at least two speech-to-text engines;
selecting, at a second predetermined time, a second set of at least two speech-to-text engines to decode a third portion of the computer-readable speech data, wherein the second predetermined time is stored in the adjustable decoding settings;
decoding simultaneously, for the predetermined duration, the third portion of the computer-readable speech data with the second set of at least two speech-to-text engines;
determining an accuracy of decoding for each of the second set of at least two speech-to-text engines;
selecting a speech-to-text engine from the second set of at least two speech-to-text engines to decode a fourth portion of the computer-readable speech data; and
decoding the fourth portion of the computer-readable speech data with the speech-to-text engine selected from the second set of at least two speech-to-text engines.
18. The computer program product of claim 17 , wherein an accuracy of decoding of a first one of the first set of at least two speech-to-text engines differs from a second one of the first set of at least two speech-to-text engines.
19. The computer program product of claim 17 , wherein the selecting the speech-to-text engine from the first set of at least two speech-to-text engines selects a speech-to-text engine having a higher accuracy of decoding.
20. The computer program product of claim 17 , further comprising decoding simultaneously a predetermined number of subsequent portions of the computer-readable speech data with at least two subsequently selected speech-to-text engines at periodic intervals of a predetermined duration, wherein the number of subsequent portions and the predetermined interval duration are stored in the adjustable decoding settings.