Text to Speech (WordPress)

Hey guys, how are you?
I’m trying to create a plugin here for personal use, I don’t know how to program and I’m using ChatGPT and the error is as follows.

When I click on the button to generate audio, it returns an empty audio file. Can someone help me please?

<?php
/*
Plugin Name: Text to Audio by ChatGPT
Description: Plugin para transformar texto em áudio usando a API da OpenAI
Version: 0.1
Author: Alex Camargo
*/

// Adiciona uma opção ao menu administrativo
function text_to_audio_menu() {
    add_menu_page('Configurações de Text to Audio', 'Text to Audio', 'manage_options', 'text_to_audio_settings', 'text_to_audio_settings_page');
}
add_action('admin_menu', 'text_to_audio_menu');

// Página de configurações no menu administrativo
function text_to_audio_settings_page() {
    ?>
    <div class="wrap">
        <h2>Configurações de Text to Audio</h2>
        <form method="post" action="options.php">
            <?php settings_fields('text_to_audio_settings_group'); ?>
            <?php do_settings_sections('text_to_audio_settings_group'); ?>
            <table class="form-table">
                <tr valign="top">
                    <th scope="row">Chave da API da OpenAI:</th>
                    <td><input type="text" name="text_to_audio_api_key" value="<?php echo esc_attr(get_option('text_to_audio_api_key')); ?>" /></td>
                </tr>
            </table>
            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}

// Adiciona configurações ao WordPress
function text_to_audio_settings() {
    register_setting('text_to_audio_settings_group', 'text_to_audio_api_key');
}
add_action('admin_init', 'text_to_audio_settings');

// Adiciona shortcode para a página
function text_to_audio_shortcode() {
    ob_start();
    ?>
    <div class="text-to-audio-form">
        <form id="text-to-audio-form">
            <label for="text-to-audio-text">Texto:</label>
            <textarea id="text-to-audio-text" name="text"></textarea>

            <label for="text-to-audio-voice">Voz:</label>
            <select id="text-to-audio-voice" name="voice">
                <option value="alloy">Alloy</option>
                <option value="echo">Echo</option>
                <option value="fable">Fable</option>
                <option value="onyx">Onyx</option>
                <option value="nova">Nova</option>
                <option value="shimmer">Shimmer</option>
            </select>

            <label for="text-to-audio-model">Modelo:</label>
            <select id="text-to-audio-model" name="model">
                <option value="tts-1">TTS-1</option>
                <option value="tts-1-hd">TTS-1 HD</option>
            </select>

            <button id="text-to-audio-generate">Gerar Áudio</button>
            <button id="text-to-audio-download" style="display:none;">Download Áudio</button>
        </form>
        <audio id="text-to-audio-player" controls style="display:none;"></audio>
    </div>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            document.getElementById('text-to-audio-generate').addEventListener('click', function(e) {
                e.preventDefault();

                var text = document.getElementById('text-to-audio-text').value;
                var voice = document.getElementById('text-to-audio-voice').value;
                var model = document.getElementById('text-to-audio-model').value;

                // Chama a API da OpenAI
                var apiKey = '<?php echo esc_js(get_option("text_to_audio_api_key")); ?>'; // Obtém a chave da API do WordPress

                jQuery.ajax({
                    url: 'https://api.openai.com/v1/audio/speech',
                    type: 'POST',
                    headers: {
                        'Authorization': 'Bearer ' + apiKey,
                        'Content-Type': 'application/json',
                    },
                    data: JSON.stringify({
                        'model': model,
                        'input': text,
                        'voice': voice,
                    }),
                    success: function(result) {
                        // Salva o resultado como um arquivo MP3
                        var audioData = result.audio;
                        var blob = new Blob([audioData], { type: 'audio/mpeg' });
                        var url = URL.createObjectURL(blob);

                        // Atualiza o reprodutor de áudio
                        var audioPlayer = document.getElementById('text-to-audio-player');
                        var downloadButton = document.getElementById('text-to-audio-download');

                        audioPlayer.src = url;
                        audioPlayer.style.display = 'block';

                        downloadButton.style.display = 'block';
                        downloadButton.addEventListener('click', function() {
                            // Adicione a lógica para permitir o download do áudio aqui
                            var a = document.createElement('a');
                            a.href = url;
                            a.download = 'speech.mp3';
                            a.click();
                        });
                    },
                    error: function(error) {
                        console.error('Erro na chamada da API da OpenAI', error);
                    }
                });
            });
        });
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('text_to_audio', 'text_to_audio_shortcode');
?>