You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PHP实现向IBM Watson发送音频文件进行语音识别?

Alright, let's turn that curl command into a functional PHP script for IBM Watson Speech to Text. I'll walk you through the implementation step by step, matching each part of your curl command to PHP's cURL functions.

1. Full PHP Implementation

This script replicates exactly what your curl command does, using PHP's built-in cURL extension:

<?php
// Replace these placeholders with your actual Watson credentials and audio file path
$watsonUsername = '{username}';
$watsonPassword = '{password}';
$audioFilePath = '{path}audio-file.flac';

// Watson Speech to Text API endpoint
$apiUrl = 'https://stream.watsonplatform.net/speech-to-text/api/v1/recognize';

// Initialize a cURL session
$ch = curl_init($apiUrl);

// Map curl command flags to PHP cURL options
curl_setopt_array($ch, [
    // Equivalent to `-X POST`
    CURLOPT_POST => true,
    // Equivalent to `-u {username}:{password}` (basic authentication)
    CURLOPT_USERPWD => "$watsonUsername:$watsonPassword",
    // Equivalent to `--header "Content-Type: audio/flac"`
    CURLOPT_HTTPHEADER => [
        'Content-Type: audio/flac'
    ],
    // Equivalent to `--data-binary @{path}audio-file.flac`
    CURLOPT_POSTFIELDS => file_get_contents($audioFilePath),
    // Return response as a string instead of printing it directly
    CURLOPT_RETURNTRANSFER => true,
    // Optional: Disable SSL verification only if you hit temporary issues (not recommended for production)
    // CURLOPT_SSL_VERIFYPEER => false,
]);

// Execute the API request
$response = curl_exec($ch);
$httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

// Handle cURL execution errors
if (curl_errno($ch)) {
    die('cURL Error Occurred: ' . curl_error($ch));
}

// Clean up the cURL session
curl_close($ch);

// Process and display the results
if ($httpStatusCode === 200) {
    // Parse JSON response into a readable associative array
    $recognitionResults = json_decode($response, true);
    echo "Speech Recognition Results:\n";
    print_r($recognitionResults);
} else {
    echo "Request Failed. HTTP Status Code: $httpStatusCode\n";
    echo "Error Response: $response\n";
}
?>
2. Key Notes & Troubleshooting
  • Enable cURL Extension: Make sure the PHP cURL extension is enabled in your php.ini file (look for extension=curl and uncomment it if it's commented out).
  • Audio File Specs: Watson requires specific audio formats for reliable recognition. For FLAC files, ensure it's a 16-bit, mono track (check Watson's official specs if you get empty or inaccurate results).
  • Credential Security: Never hardcode your Watson username/password in production. Use environment variables or a secure, non-public config file instead.
  • SSL Issues: If you encounter SSL certificate errors, avoid disabling verification long-term. Instead, update your server's CA certificate bundle to trust Watson's SSL certificate.

内容的提问来源于stack exchange,提问作者Soubarno Banerjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:39:45