Using asyncio with Azure Computer Vision SDK read_in_stream

I have an application where I need to process several pdfs using Azure Computer Vision SDK. I am following this example from the official documentation.

From what I have understood, we can submit pdfs by

# Async SDK call that "reads" the image
response = client.read_in_stream(filepath, raw=False)

and get the results using operation_location

# Get ID from returned headers
operation_location = response.headers["Operation-Location"]
operation_id = operation_location.split("/")[-1]

# SDK call that gets what is read
while True:
    result = client.get_read_result(operation_id)
    if result.status.lower () not in ['notstarted', 'running']:
    print ('Waiting for result...')
return result

I have noticed that read_in_stream takes around 10 to 30 seconds (depending on number of pages, images in pdf, quality, etc.) and would like to use asyncio to concurrently proceed to next tasks instead of waiting for pdfs to just submit. I tried using joblib backends to speed this up (multithreading, multiprocessing and also a combination of the two), but the performance was just 2-2.5 times better even after tweaking other parameters of joblib.

I want to know the correct way of using asyncio for this problem and would like to keep using the azure SDK objects instead of resorting to requests library and dealing with raw json responses. I think with requests, asyncio and aiohttp library this could be achieved as below, but how to proceed with azure SDK?

timeout = aiohttp.ClientTimeout(total = 3600)
async with aiohttp.ClientSession(timeout = timeout) as session:
    async with session.get(url) as resp:
        # Submit pdfs and get its result