IP Library Granted Patent US 8,688,445
Granted Patent B2
US 8,688,445 · App. 12/332,309 · Granted Apr 1, 2014

Multi-core processing for parallel speech-to-text processing

Inventors: Walter W. Chang (San Jose, CA); Michael J. Welch (Los Angeles, CA)
Assignee: Adobe Systems Incorporated
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,688,445
App. No.
12/332,309
Granted
Apr 1, 2014
Kind
B2
Abstract

This specification describes technologies relating to multi core processing for parallel speech-to-text processing. In some implementations, a computer-implemented method is provided that includes the actions of receiving an audio file; analyzing the audio file to identify portions of the audio file as corresponding to one or more audio types; generating a time-ordered classification of the identified portions, the time-ordered classification indicating the one or more audio types and position within the audio file of each portion; generating a queue using the time-ordered classification, the queue including a plurality of jobs where each job includes one or more identifiers of a portion of the audio file classified as belonging to the one or more speech types; distributing the jobs in the queue to a plurality of processors; performing speech-to-text processing on each portion to generate a corresponding text file; and merging the corresponding text files to generate a transcription file.

Claims (95)

1. A computer-implemented method comprising:

receiving an audio file;

analyzing the audio file to identify portions of the audio file as corresponding to one or more audio types, the one or more audio types including one or more speech types;

generating a time-ordered classification of the identified portions, the time-ordered classification indicating the one or more audio types and position within the audio file of each respective portion;

generating a queue using the time-ordered classification, the queue including a plurality of jobs where each job includes one or more identifiers of a respective portion of the audio file classified as belonging to the one or more speech types;

distributing the jobs in the queue to a plurality of processors for speech-to-text processing of the corresponding portion of the audio file;

performing speech-to-text processing on each portion to generate a corresponding text file; and

merging the corresponding text files to generate a transcription file, the text files merged in order based on the order in which the portions of the audio file occur within the audio file.

2. The method of claim 1 , where the distribution of the processor job descriptors for the portions of the audio file in the queue occurs in a first-in-first-out order.

3. The method of claim 1 , where one or more of the jobs in the queue are distributed before the generated queue is completed.

4. The method of claim 3 , where merging the text files is divided recursively amongst the plurality of processors.

5. The method of claim 1 , where the plurality of processors are distributed amongst one or more computing devices.

6. The method of claim 1 , where the jobs in the queue are distributed to two or more remote locations, each remote location including a plurality of processors, each remote location connected to one or more other remote locations.

7. The method of claim 1 , where the one or more audio types includes data with spoken language.

8. The method of claim 1 , where distributing jobs in the queue to the plurality of processors further comprises:

partitioning the queue into units based on a specified amount of time; and

partitioning the units in substantially equal amounts of time to each of the plurality of processors.

9. The method of claim 1 , where distributing jobs in the queue for the portions of the audio file in the queue to the plurality of processors further comprises:

partitioning the queue into units based on a specified amount of data; and

partitioning the units in substantially equal amounts of data to each of the plurality of processors.

10. The method of claim 1 , where a client device identifies and classifies the portions of the audio file into the one or more audio types within the audio file.

11. The method of claim 1 , further comprising:

partitioning the received audio file for identification and classification using a plurality of classifiers.

12. The method of claim 11 , where the plurality of classifiers comprise one or more of the following classifiers: dialogue, applause, music, silence, and ambient noise.

13. The method of claim 1 , further comprising:

storing the transcription file.

14. The method of claim 1 , where generating the queue includes generating portion descriptors for each portion.

15. The method of claim 14 , where the portion descriptors comprise metadata associated with amount of time and one or more classifiers associated with the portions of the audio file.

16. The method of claim 1 , where the time-ordered classification includes determining a time interval for each portion of the identified portions.

17. A computer program product, encoded on a non-transitory computer-readable medium, operable to cause data processing apparatus to perform operations comprising:

receiving an audio file;

analyzing the audio file to identify portions of the audio file as corresponding to one or more audio types, the one or more audio types including one or more speech types;

generating a time-ordered classification of the identified portions, the time-ordered classification indicating the one or more audio types and position within the audio file of each respective portion;

generating a queue using the time-ordered classification, the queue including a plurality of jobs where each job includes one or more identifiers of a respective portion of the audio file classified as belonging to the one or more speech types;

distributing the jobs in the queue to a plurality of processors for speech-to-text processing of the corresponding portion of the audio file;

performing speech-to-text processing on each portion to generate a corresponding text file; and

merging the corresponding text files to generate a transcription file, the text files merged in order based on the order in which the portions of the audio file occur within the audio file.

18. The computer program product of claim 17 , where the distribution of the processor job descriptors for the portions of the audio file in the queue occurs in a first-in-first-out order.

19. The computer program product of claim 17 , where one or more of the jobs in the queue are distributed before the generated queue is completed.

20. The computer program product of claim 19 , where merging the text files is divided recursively amongst the plurality of processors.

21. The computer program product of claim 17 , where the plurality of processors are distributed amongst one or more computing devices.

22. The computer program product of claim 17 , where the jobs in the queue are distributed to two or more remote locations, each remote location including a plurality of processors, each remote location connected to one or more other remote locations.

23. The computer program product of claim 17 , where the one or more audio types includes data with spoken language.

24. The computer program product of claim 17 , where distributing jobs in the queue to the plurality of processors further comprises:

partitioning the queue into units based on a specified amount of time; and

partitioning the units in substantially equal amounts of time to each of the plurality of processors.

25. The computer program product of claim 17 , where distributing jobs in the queue for the portions of the audio file in the queue to the plurality of processors further comprises:

partitioning the queue into units based on a specified amount of data; and

partitioning the units in substantially equal amounts of data to each of the plurality of processors.

26. The computer program product of claim 17 , where a client device identifies and classifies the portions of the audio file into the one or more audio types within the audio file.

27. The computer program product of claim 17 , further operable to perform operations comprising:

partitioning the received audio file for identification and classification using a plurality of classifiers.

28. The computer program product of claim 27 , where the plurality of classifiers comprise one or more of the following classifiers: dialogue, applause, music, silence, and ambient noise.

29. The computer program product of claim 17 , further operable to perform operations comprising:

storing the transcription file.

30. The computer program product of claim 17 , where generating the queue includes generating portion descriptors for each portion.

31. The computer program product of claim 30 , where the portion descriptors comprise metadata associated with amount of time and one or more classifiers associated with the portions of the audio file.

32. The computer program product of claim 17 , where the time-ordered classification includes determining a time interval for each portion of the identified portions.

33. A system comprising:

a processor and a memory operable to perform operations including:

analyzing the audio file to identify portions of the audio file as corresponding to one or more audio types, the one or more audio types including one or more speech types;

generating a time-ordered classification of the identified portions, the time-ordered classification indicating the one or more audio types and position within the audio file of each respective portion;

generating a queue using the time-ordered classification, the queue including a plurality of jobs where each job includes one or more identifiers of a respective portion of the audio file classified as belonging to the one or more speech types;

distributing the jobs in the queue to a plurality of processors for speech-to-text processing of the corresponding portion of the audio file;

performing speech-to-text processing on each portion to generate a corresponding text file; and

merging the corresponding text files to generate a transcription file, the text files merged in order based on the order in which the portions of the audio file occur within the audio file.

34. The system of claim 33 , where the distribution of the processor job descriptors for the portions of the audio file in the queue occurs in a first-in-first-out order.

35. The system of claim 33 , where one or more of the jobs in the queue are distributed before the generated queue is completed.

36. The system of claim 35 , where merging the text files is divided recursively amongst the plurality of processors.

37. The system of claim 33 , where the plurality of processors are distributed amongst one or more computing devices.

38. The system of claim 33 , where the jobs in the queue are distributed to two or more remote locations, each remote location including a plurality of processors, each remote location connected to one or more other remote locations.

39. The system of claim 33 , where the one or more audio types includes data with spoken language.

40. The system of claim 33 , where distributing jobs in the queue to the plurality of processors further comprises:

partitioning the queue into units based on a specified amount of time; and

partitioning the units in substantially equal amounts of time to each of the plurality of processors.

41. The system of claim 33 , where distributing jobs in the queue for the portions of the audio file in the queue to the plurality of processors further comprises:

partitioning the queue into units based on a specified amount of data; and

partitioning the units in substantially equal amounts of data to each of the plurality of processors.

42. The system of claim 33 , where a client device identifies and classifies the portions of the audio file into the one or more audio types within the audio file.

43. The system of claim 33 , further operable to perform operations comprising:

partitioning the received audio file for identification and classification using a plurality of classifiers.

44. The system of claim 43 , where the plurality of classifiers comprise one or more of the following classifiers: dialogue, applause, music, silence, and ambient noise.

45. The system of claim 33 , further operable to perform operations comprising:

storing the transcription file.

46. The system of claim 33 , where generating the queue includes generating portion descriptors for each portion.

47. The system of claim 46 , where the portion descriptors comprise metadata associated with amount of time and one or more classifiers associated with the portions of the audio file.

48. The system of claim 33 , where the time-ordered classification includes determining a time interval for each portion of the identified portions.

49. A method performed by a computer programmed to provide speech-to-text processing, the method comprising:

receiving an audio file;

analyzing the audio file to identify portions of the audio file as corresponding to one or more audio types, the one or more audio types including one or more speech types;

generating a time-ordered classification of the identified portions, the time-ordered classification indicating the one or more audio types and position within the audio file of each respective portion;

generating a queue using the time-ordered classification, the queue including a plurality of jobs where each job includes one or more identifiers of a respective portion of the audio file classified as belonging to the one or more speech types;

distributing the jobs in the queue to a plurality of processors for speech-to-text processing of the corresponding portion of the audio file;

performing speech-to-text processing on each portion to generate a corresponding text file; and

merging the corresponding text files to generate a transcription file, the text files merged in order based on the order in which the portions of the audio file occur within the audio file.

Assignments (2)
CHANGE OF NAME Recorded Apr 8, 2019
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 048867/0882 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2011
From: CHANG, WALTER; WELCH, MICHAEL J.
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 027032/0799 →
Continuity (1)
Related Publication 20130166285A1 · Jun 27, 2013