Get Oral Reading Measures for Students
Use this to calculate the Lexile® oral reading measure for an individual student performance.
Overview
- Send text and an audio performance to be analyzed and receive a Lexile oral
reading measure. This request must be made in
multipart/form-data
, which means you're passing atextfile
andaudiofile
. - Send student performance characteristics and a Lexile oral readability measure for a text to receive a Lexile oral reading measure.
Use the inputType
parameter to indicate which you are trying to use
and make sure you pass the correct parameters for the inputType
you
selected.
URI
reader/performance/ability
Parameters
Each call should include the general parameters and the parameters relevant to the
inputType
you set.
Parameter | Format | Description |
---|---|---|
Authorization |
String | Your access token should be included in the header of your request.
If you need an accessToken , use Retrieve an Auth Token to generate
it.This needs to have the structure "Bearer {accessToken}" |
inputType |
String | Indicates the type of information being sent with the request. Can
be:
|
audio inputType
might look
like:text_file = requests.get( "https://s3.amazonaws.com/mmincstatic/oralreadingexamples/example.txt" ).content audio_file = requests.get( "https://s3.amazonaws.com/mmincstatic/oralreadingexamples/example.wav" ).content body = {"textFile": text_file, "audioFile": audio_file} response = requests.post( ( "https://oralreading-analyzer.lexile.com/reader/performance/ability" "?inputType=audio" ), files=body, headers={"Authorization": f"Bearer {access_token}"}, )
The audio inputType
request includes these parameters:
Parameter | Format | Description |
---|---|---|
textFile |
String | The text file that corresponds with an audio file that will be
measured. The file should be an unformatted text file (UTF8). |
audioFile |
String | The binary audio file for measurement. The file should be:
|
speechModel |
String | Indicates if the audio should be evaluated as adult or child speech.
Typically the switch from child to adult is around 12 to 13 years old.
Options are:
|
characteristics inputType
might look
like:body = {"wcpm": 120, "oralReadingDifficulty": {"measure": {"value": 1060}}, "accuracy": 0.75} response = requests.post( ( "https://oralreading-analyzer.lexile.com/reader/performance/ability" "?inputType=characteristics" ), json=body, headers={"Authorization": f"Bearer {access_token}"}, )
The characteristics inputType
request includes these parameters:
Parameter | Format | Description |
---|---|---|
wcpm |
Number | Words correct per minute. Example: 160 |
accuracy |
Number | The accuracy of words spoken compared to the text. This will be a
number between zero and one. Example: 0.9 |
oralReadingDifficulty |
Object | This the Lexile® oral readability measure for a text. It contains:
displayName .
This is the name used for the measurement. |
Responses
What your receive in the response will depend on the inputType
used.
audio inputType
might look like:
{ "performanceId":29, "wcpm":9.046362608367884, "accuracy":0.3, "oralReadingAbility":{ "measure":{ "value":-1840, "display":"BR1840L", "uncertainty":193 }, "displayName":"Lexile Oral Reading Measure" }, "feedback": { "behaviors": { "APPROPRIATE_RATE": 0.75, "TOO_SLOW": 0.01, "TOO_FAST": 0.62, "VARIED_RATE": 0.08, "NON_SIGHT_CORRECT": 1.0, "NON_SIGHT_OKAY": 0.07, "NON_SIGHT_SKIP": 0.03, "NON_SIGHT_GUESS": 0.02, "SIGHT_AUTOMATIC": 1.0, "SIGHT_SLOW": 0.0, "SIGHT_SKIPS": 0.03, "SIGHT_GUESSES": 0.0, "PAUSING_GOOD": 0.75, "RUN_ON": 0.87, "TOO_MUCH_PAUSING": 0.16, "GOOD_INTONATION": 0.75, "BAD_INTONATION": 0.89 }, "readingAdvice": "Good job correctly reading larger and harder words. Remember to pause at the ends of sentences." }, "apiVersion":"apiVersion" }
The audio inputType
response includes these parameters:
Parameter | Format | Description |
---|---|---|
performanceID |
Integer | A list of the identifiers assigned to a single audio and text pair. |
wcpm |
Number | Words correct per minute. Example: 160 |
accuracy |
Number | The accuracy of words spoken compared to the text. This will be a
number between zero and one. Example: 0.9 |
oralReadingAbility |
Object | This is the Lexile oral reading measure for a student. It
contains:
displayName . This is the name used for the
measurement. |
feedback |
String | Providing feedback based on performance. This object contains:
|
apiVersion |
Object | The current version number for the API. |
characteristics inputType
might look
like:{ "oralReadingAbility":{ "measure":{ "value":655, "display":"655L", "uncertainty":193 }, "displayName":"Lexile Oral Reading Measure" }, "wcpm":120.0, "accuracy":0.75, "apiVersion":"apiVersion" }
The characteristics inputType
response includes these
parameters:
Parameter | Format | Description |
---|---|---|
oralReadingAbility |
Object | This is the Lexile oral reading measure for a student. It contains:
displayName .
This is the name used for the measurement. |
apiVersion |
String | The current version number for the API. |
Additionally, these response codes may be returned:
Code | Description | Example |
---|---|---|
200 | The call was successful. |
|
400 | The request wasn't successful due to invalid input, a misspelled
parameter, or a missing required parameter. For example, you could receive this error when the audio is too soft or the file is too short to be measured. |
|
503 | The service is unavailable. |
|