pythonazureopenai-apispeech-to-textazure-openai

Azure openai speech to text -Whisper "code":"404","message": "Resource not found"


I am trying to transcribe an audio file by using Whisper through Azure OpenAI key, endpoints, deployment.

I am using right credentials and deploying in a valid region for Whisper, with their permission granted (followed every step from the official manual).

Here's the error I receive:

Error 404: {"error":{"code":"404","message": "Resource not found"}}

Tried transcription on Azure playground using same deployment, and it works there.

import os
import requests

# Azure OpenAI credentials
os.environ['AZURE_OPENAI_KEY'] = 'KEY'
os.environ['AZURE_OPENAI_ENDPOINT'] = 'ENDPOINT'

# Azure OpenAI metadata variables
openai = {
    'api_key': os.environ.get('AZURE_OPENAI_KEY'),
    'api_base': os.environ.get('AZURE_OPENAI_ENDPOINT'),
    'api_version': '2023-06-01-preview',
    'name': 'deployment name'
}

# Header for authentication
headers = {
    'api-key': openai['api_key']
}

# audio file
file_path = '/content/drive/MyDrive/speech2text/sampleaudiO.wav'

# URL for the API endpoint
url = f"{openai['api_base']}/openai/deployments/{openai['name']}/audio/transcriptions?api-version={openai['api_version']}"

try:
    # Reading the audio file as binary data
    with open(file_path, 'rb') as audio_file:
        # Send the request to Azure OpenAI for transcription
        response = requests.post(url, headers=headers, files={"file": audio_file})

        # Check if the request was successful and print the transcription
        if response.status_code == 200:
            transcription = response.json().get('text', 'Transcription not available')
            print("Transcription:", transcription)
        else:
            print(f"Error {response.status_code}: {response.text}")

except Exception as e:
    print(f"An error occurred: {e}")
here

Solution

  • Getting this error: Error 404: {"error":{"code":"404","message": "Resource not found"}}

    The above error occurs when you pass the wrong parameters, such as (api_key, api_base, api_version) in your request.

    In your request, you have passed the wrong API version. After passing the correct api_version=2023-09-01-preview in the Python code, it executed successfully in my environment.

    Code:

    import os
    import requests
    
    os.environ['AZURE_OPENAI_KEY'] = 'xxxx'
    os.environ['AZURE_OPENAI_ENDPOINT'] = 'https://resource-name.openai.azure.com'
    
    # Azure OpenAI metadata variables
    openai = {
        'api_key': os.environ.get('AZURE_OPENAI_KEY'),
        'api_base': os.environ.get('AZURE_OPENAI_ENDPOINT'),
        'api_version': '2023-09-01-preview',
        'name': 'whisper-deployment'
    }
    
    headers = {
        'api-key': openai['api_key']
    }
    
    file_path = './harvard.wav'
    
    url = f"{openai['api_base']}/openai/deployments/{openai['name']}/audio/transcriptions?api-version={openai['api_version']}"
    
    try:
        # Reading the audio file as binary data
        with open(file_path, 'rb') as audio_file:
            response = requests.post(url, headers=headers, files={"file": audio_file})
            if response.status_code == 200:
                transcription = response.json().get('text', 'Transcription not available')
                print("Transcription:", transcription)
            else:
                print(f"Error {response.status_code}: {response.text}")
    
    except Exception as e:
        print(f"An error occurred: {e}")
    

    Output:

    Transcription: The stale smell of old beer lingers. It takes heat to bring out the odor. A cold dip restores health and zest. A salt pickle tastes fine with ham. Tacos al pastor are my favorite. A zestful food is the hot cross bun.
    

    enter image description here

    Reference: Azure OpenAI Service REST API reference - Azure OpenAI | Microsoft Learn.