humanemulator.net — справка. Продукт, демо и покупка — на хуманэмулятор.рф | Демо | Купить | API | лог изменений

recognize_file

recognize_file($path,$dict,$jsgf,$hmm,$add_params="",$timeout=60); - распознать звуковой файл как речь, используя Open Source Speech Recognition Toolkit CMU Sphinx (Доступна с версии 4.10.7)
- фвйл должен быть с разрешением 128 Kb/s (8 kHz) ( Изменить формат файла можно через $sound->convert_file )

Функция на вход принимает параметры:

  • $path – путь к звуковому файлу, который нужно распознать (формат wav, дискретизация должна соотвествовать дискретизации используемой модели)
  • $dict – путь к словарю (путь должен быть относительно папки Audio Tools)
  • $jsgf – путь к файлу граматики (формат JSGF (путь должен быть относительно папки Audio Tools)
  • $hmm – путь к каталогу hmm модели (путь должен быть относительно папки Audio Tools)
  • $add_params – дополнительные парметры командной строки для запуска pocketsphinx_continuous.exe
  • $timeout – максимальное время, которое будет отведено на эту операцию

    После отработки функция возвращает результат своей работы в скрипт :
  • true – последовательность цифр , продиктованных в звуковом файле (через пробел)
  • false – операция не была успешно завершена

    Пример использования
    <?php
    // Scenario: Recognize speech from an audio file using CMU Sphinx
    
    $xhe_host = "localhost:7010";
    // Connect functional objects if not already connected
    if (!isset($path)){
      $path = "../../../Templates/init.php";
      require($path);
    }
    // info
    echo "\n<span >sound->" . basename (__FILE__) . "</span>\n";
    
    // Example 1: Prepare audio file for recognition (convert to WAV with 8 kHz)
    // Input data
    $sourceFile = "test/mp3/4196092774.mp3";
    $targetFile = "test/mp3/4196092774.wav";
    $sampleRate = "8000";
    
    echo("\n\nExample 1. Prepare audio file for recognition (convert to WAV with 8 kHz): ");
    $convertResult = SYSTEM::$sound->convert_file($sourceFile, $targetFile, $sampleRate);
    
    if ($convertResult) {
        echo("true\n");
    } else {
        echo("false\n");
    }
    
    // Example 2: Recognize file with English digits (0-9) using CMU Sphinx
    // Input data
    $audioFile = "test/mp3/4196092774.wav";
    $dictionaryPath = "digits/digits.dict";
    $grammarPath = "digits/digits.gram";
    $modelPath = "cmusphinx-en-us-8khz-5.2";
    $additionalParams = "-samprate 8000 -remove_dc yes -remove_noise no -vad_threshold 3.4 -vad_prespeech 19 -vad_postspeech 37 -silprob 2.5";
    
    echo("\n\nExample 2. Recognize file with English digits (0-9) using CMU Sphinx: ");
    $recognizeResult = SYSTEM::$sound->recognize_file($audioFile, $dictionaryPath, $grammarPath, $modelPath, $additionalParams);
    
    if ($recognizeResult) {
        echo("true\n");
    } else {
        echo("false\n");
    }
    
    // Quit the application
    WINDOW::$app->quit();
    ?>
    # Additional paths
    import sys
    sys.path.insert(0, '../../../Templates PY/')
    
    xhe_host = "127.0.0.1:7010"
    from xweb_human_emulator import *
    
    # начало
    echo("<hr><font color=blue>sound.xxxxxxxxx</font><hr>")
    
    # 1 
    echo("1. Подготовим файл : ")
    echo(sound.convert_file("test/mp3/4196092774.mp3","test/mp3/4196092774.wav","8000"),"\n")
    
    # 2 
    echo("2. Распознаем файл с английскими цифрами (0-9) используя CMU Sphinx : ")
    echo(sound.recognize_file("test/mp3/4196092774.wav","digits\\digits.dict","digits\\digits.gram","cmusphinx-en-us-8khz-5.2","-samprate 8000 -remove_dc yes -remove_noise no -vad_threshold 3.4 -vad_prespeech 19 -vad_postspeech 37 -silprob 2.5"),"\n")
    
    # конец
    echo("<hr><br>")
    
    # Quit
    app.quit()
    #region using
    
    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Linq;
    using System.IO;
    using System.Text;
    using System.Threading;
    
    using XHE;
    using XHE.XHE_DOM;
    using XHE.XHE_System;
    using XHE.XHE_Window;
    using XHE.XHE_Web;
    
    #endregion
    
     class Program:XHEScript
     {
    	  static void Main(string[] args)
    	  {
    			// init XHE
    			server = "localhost:7010";
    			InitXHE();
    
    			// начало
    			echo("<hr><font color=blue>sound.recognize_file</font><hr>");
    				
    			// 1 
    			echo("1. Подготовим файл : ");
    			echo(sound.convert_file("test/mp3/4196092774.mp3","test/mp3/4196092774.wav","8000")+"\n");
    
    			// 2
    			echo("2. Распознаем файл с английскими цифрами (0-9) используя CMU Sphinx : ");
    			echo(sound.recognize_file("test/mp3/4196092774.wav","digits\\digits.dict","digits\\digits.gram","cmusphinx-en-us-8khz-5.2","-samprate 8000 -remove_dc yes -remove_noise no -vad_threshold 3.4 -vad_prespeech 19 -vad_postspeech 37 -silprob 2.5")+"\n");
    
    			// конец
    			echo("\n\n");
    
    			app.quit();            
    	  }
    }
    // подключим функциональные объекты, если еще не подключен
    xhe_host="127.0.0.1:7022";
    echo=require("../../../Templates JS/init.js");
    
    // начало
    echo("<hr><font color=blue>sound.play_sound</font><hr>");
    
    // 1 
    echo("1. Подготовим файл : ");
    echo(sound.convert_file("test/mp3/4196092774.mp3","test/mp3/4196092774.wav","8000")+"\n");
    
    // 2
    echo("2. Распознаем файл с английскими цифрами (0-9) используя CMU Sphinx : ");
    echo(sound.recognize_file("test/mp3/4196092774.wav","digits\\digits.dict","digits\\digits.gram","cmusphinx-en-us-8khz-5.2","-samprate 8000 -remove_dc yes -remove_noise no -vad_threshold 3.4 -vad_prespeech 19 -vad_postspeech 37 -silprob 2.5")+"\n");
    
    // конец
    echo("\n");
    
    // Quit
    app.quit();

    =============================================
    Sound    Объекты    DOM  System  Vision  Web  Window        
    =============================================
    если что-то непонятно или необходимо узнать или считаете что надо добавить по работе этой функции, пишите в комментарии или на наш форум
    .