PHP melaksanakan fungsi text-to-speech dalam program mini WeChat

PHPz
Lepaskan: 2023-06-01 08:32:02
asal
1681 orang telah melayarinya

Dengan populariti alatan sosial dan populariti telefon pintar yang berterusan, saya percaya semua orang boleh mengalami faedah dan kemudahan berkomunikasi dengan menghantar mesej suara. Dalam kehidupan seharian, kita boleh menggunakan input suara dan fungsi sintesis pertuturan telefon pintar untuk melengkapkan input teks suara dan output teks. Walau bagaimanapun, untuk sesetengah aplikasi web, ia tidak disertakan dengan fungsi ini, jadi kami perlu menggunakan beberapa perkhidmatan pihak ketiga untuk melaksanakan fungsi ini. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan fungsi teks ke pertuturan dalam applet WeChat.

Pengetahuan pra-syarat

Sebelum kita mula, kita memerlukan beberapa pengetahuan asas:

  • Pengetahuan asas pembangunan applet WeChat;
  • Asas PHP pengetahuan bahasa;
  • Prinsip asas text-to-speech;
  • Prinsip asas text-to-speech

Sintesis pertuturan ialah teknologi yang menukar maklumat teks kepada maklumat bunyi Prinsipnya adalah berdasarkan fonem, nada, suku kata, tatabahasa bahasa, dsb. Maklumat, menggunakan algoritma sintesis untuk menukar teks kepada bunyi. Terdapat banyak teknologi untuk melaksanakan sintesis pertuturan, antaranya yang paling banyak digunakan ialah teknologi sintesis pertuturan berasaskan HMM dan teknologi sintesis pertuturan berasaskan rangkaian saraf.

Pengetahuan asas tentang permintaan dan respons HTTP

Dalam proses membuat permintaan HTTP, kita perlu menggunakan protokol HTTP. Protokol HTTP secara amnya mengandungi bahagian berikut:

Pengepala permintaan: Pengepala permintaan mengandungi maklumat asas permintaan, seperti kaedah permintaan, laluan permintaan, parameter permintaan, pengepala permintaan dan maklumat lain.
  • Isi permintaan: Isi permintaan mengandungi kandungan entiti permintaan HTTP, seperti parameter dan fail dalam permintaan POST.
  • Pengepala respons: Pengepala respons mengandungi kod status, jenis data, pengepala respons dan maklumat lain yang dikembalikan oleh pelayan.
  • Badan respons: Badan respons mengandungi kandungan data sebenar yang dikembalikan oleh pelayan.
  • Apabila membuat permintaan HTTP melalui PHP, kami boleh menggunakan perpustakaan CURL untuk melaksanakan proses ini. Proses pelaksanaan khusus adalah seperti berikut:

Mulakan tika CURL dan tetapkan pilihan yang berkaitan.
  • Hantar permintaan dan tetapkan pengepala permintaan, badan permintaan dan maklumat lain.
  • Terima hasil respons dan huraikan pengepala permintaan, isi permintaan dan maklumat lain.
  • Proses pelaksanaan

Seterusnya mari kita lihat cara menggunakan PHP untuk melaksanakan fungsi teks ke pertuturan dalam applet WeChat.

Langkah 1: Mohon Token Akses Baidu Voice API

Sebelum menggunakan Baidu Voice API untuk melaksanakan fungsi teks-ke-ucapan, anda perlu memohon Token Akses bagi API Suara Baidu. Token Akses digunakan terutamanya untuk pengesahan identiti pelbagai perkhidmatan pada platform terbuka AI Baidu dan perlu dibilkan berdasarkan jumlah permintaan.

Cara mendapatkan Token Akses adalah seperti berikut:

Pertama, anda perlu mendaftar akaun di Baidu AI Open Platform dan buat aplikasi.
  • Kemudian, apabila membuat aplikasi, anda perlu memilih fungsi "sintesis pertuturan" dan mengkonfigurasi maklumat aplikasi.
  • Akhir sekali, anda boleh mendapatkan Token Akses dalam halaman pengurusan aplikasi.
  • Langkah 2: Tulis skrip PHP

Pasang modul CURL
  1. Dalam bahasa PHP, kita perlu menggunakan modul CURL untuk melaksanakan Permintaan HTTP dan fungsi tindak balas. Oleh itu, sebelum melaksanakan fungsi text-to-speech, kita perlu memastikan bahawa modul CURL telah dipasang dan didayakan dengan betul.

Kod PHP untuk mendapatkan Token Akses
  1. Kod PHP untuk mendapatkan Token Akses adalah seperti berikut:
const ACCESS_TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token';

function getAccessToken()
{
    $url = ACCESS_TOKEN_URL;
    
    $params = array(
        'grant_type' => 'client_credentials',
        'client_id' => '********',
        'client_secret' => '********',
    );
    
    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false,
        CURLOPT_POST => count($params),
        CURLOPT_POSTFIELDS => http_build_query($params),
    );
    
    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    
    $response = curl_exec($ch);
    
    $result = json_decode($response, true);
    
    if (! isset($result['access_token'])) {
        return false;
    }
    
    return $result['access_token'];
} 
Salin selepas log masuk

Antaranya:

$url ialah alamat API permintaan;
  • $params ialah tatasusunan parameter permintaan itu; pengepala permintaan, isi permintaan dan maklumat lain Sebagai contoh, jika CURLOPT_RETURNTRANSFER adalah benar, ini bermakna permintaan akan mengembalikan hasil daripada mengeluarkannya terus ke skrin
  • $response ialah data asal yang dikembalikan oleh request;
  • $result adalah untuk menukar $respons menjadi array Hasilnya selepas itu.
  • Dengan memanggil fungsi ini, kami boleh mendapatkan Token Akses Baidu Speech API dan menggunakannya sebagai pengesahan yang sah untuk permintaan sintesis pertuturan berikutnya.
Kod PHP untuk text-to-speech

    Kod PHP untuk text-to-speech adalah seperti berikut:
  1. const TEXT_TO_SPEECH_URL = 'https://tsn.baidu.com/text2audio';
    
    function textToSpeech($text, $access_token)
    {
        $url = TEXT_TO_SPEECH_URL;
            
        $params = array(
            'tex' => urlencode($text),
            'cuid' => 'PHP TEXT TO SPEECH',
            'lan' => 'zh',
            'ctp' => '1',
            'spd' => '5',
            'vol' => '15',
            'per' => '0',
            'aue' => '3',
            'tok' => $access_token,
        );
        
        $options = array(
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HEADER => false,
            CURLOPT_POST => count($params),
            CURLOPT_POSTFIELDS => http_build_query($params),
        );
        
        $ch = curl_init($url);
        curl_setopt_array($ch, $options);
        
        $response = curl_exec($ch);
        
        return $response;
    }
    
    Salin selepas log masuk
    Antaranya:

    $text ialah maklumat teks yang perlu ditukar kepada pertuturan; permintaan, termasuk maklumat teks yang perlu disintesis, Maklumat seperti bahasa yang digunakan, bunyi yang digunakan, dan sebagainya.

      Dengan memanggil fungsi ini, kami boleh menukar maklumat teks kepada fail suara dalam format MP3 dan mengembalikannya kepada pemanggil.
    • Langkah 3: Panggil skrip PHP dalam applet WeChat dan laksanakan fungsi text-to-speech
    • Menggunakan PHP dalam applet WeChat untuk melaksanakan fungsi text-to-speech boleh dibahagikan ke dalam langkah berikut:
    Tulis kod yang berkaitan dalam halaman program mini untuk mendapatkan maklumat teks yang perlu ditukar; maklumat teks yang perlu ditukar Dihantar kepada skrip sebagai parameter;

    menghuraikan fail suara yang dikembalikan oleh skrip PHP dan memainkannya melalui pemain.

    Proses pelaksanaan khusus agak rumit dan tidak akan diterangkan secara terperinci dalam artikel ini. Pembaca boleh melaksanakan fungsi ini dengan merujuk kepada dokumen dan tutorial yang berkaitan.

      Ringkasan
    • Artikel ini memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan fungsi teks ke pertuturan dalam applet WeChat. Dengan menggunakan perpustakaan CURL, kami boleh melaksanakan permintaan dan proses respons HTTP dengan mudah, dan menukar maklumat teks kepada maklumat suara dengan menghubungi Baidu Voice API. Saya harap artikel ini dapat memberi manfaat kepada pembaca.

    Atas ialah kandungan terperinci PHP melaksanakan fungsi text-to-speech dalam program mini WeChat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan