source: pmb4.2/trunk/fuentes/pmb/classes/voxilab/voxilabSpeaker.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 3.6 KB
Line 
1<?php
2/***********************************************************************************************
3 Ce fichier fait partie du projet voxilabPHP, implémentation PHP de
4l'API Voxilab (https://github.com/voxilab)
5
6Cette  implémentation développée par © 2013- PMB Services.
7
8Ce programme est régi par la licence CeCILL soumise au droit français et
9respectant les principes de diffusion des logiciels libres. Vous pouvez
10utiliser, modifier et/ou redistribuer ce programme sous les conditions
11de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
12sur le site "http://www.cecill.info".
13
14En contrepartie de l'accessibilité au code source et des droits de copie,
15de modification et de redistribution accordés par cette licence, il n'est
16offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
17seule une responsabilité restreinte pèse sur l'auteur du programme,  le
18titulaire des droits patrimoniaux et les concédants successifs.
19
20A cet égard  l'attention de l'utilisateur est attirée sur les risques
21associés au chargement,  à l'utilisation,  à la modification et/ou au
22développement et à la reproduction du logiciel par l'utilisateur étant
23donné sa spécificité de logiciel libre, qui peut le rendre complexe à
24manipuler et qui le réserve donc à des développeurs et des professionnels
25avertis possédant  des  connaissances  informatiques approfondies.  Les
26utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
27logiciel à leurs besoins dans des conditions permettant d'assurer la
28sécurité de leurs systèmes et ou de leurs données et, plus généralement,
29à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
30
31Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
32pris connaissance de la licence CeCILL, et que vous en avez accepté les
33termes.
34***********************************************************************************************/
35
36/*
37 * A speaker : a distinct person identified in the speech. A speaker is always associated with segments.
38*
39* $Id: voxilabSpeaker.class.php,v 1.1 2014-01-10 15:46:42 apetithomme Exp $
40*/
41
42if (stristr ($_SERVER['REQUEST_URI'], ".class.php"))
43        die ("no access");
44
45require_once 'voxilabSegment.class.php';
46
47class voxilabSpeaker
48{
49         /*** Attributes: ***/
50
51        /**
52         * Speaker identifier
53         * @access public
54         */
55        private $id;
56
57        /**
58         * Speaker gender
59         * @access private
60         */
61        private $gender;
62       
63        /**
64         * Speaker segments
65         * @var array
66         */
67        private $segments = array();
68
69
70        /**
71         *
72         *
73         * @param int id Speaker identifier
74
75         * @param char gender Speaker gender
76
77         * @return void
78         * @access public
79         */
80        public function __construct( $id,  $gender ) {
81                $this->id = $id;
82                $this->gender = $gender;
83        } // end of member function __construct
84
85        public function __toString() {
86                print "Speaker ".$this->id.". Gender : ".$this->gender."<br />";
87        }
88       
89        public function getID() {
90                return $this->id;
91        }
92       
93        public function getGender() {
94                return $this->gender;
95        }
96       
97        /**
98         * Add a segment to the speaker
99         * @param voxilabSegment segment New segment
100         */
101        public function addSegment($segment) {
102                $this->segments[] = $segment;
103        }
104       
105        /**
106         * Encode the segment into Json
107         * @return string
108         */
109        public function toJson() {
110                $segments = array();
111                foreach ($this->segments as $segment) {
112                        $segments[] = array(
113                                        'start' => $segment->getStart(),
114                                        'duration' => $segment->getDuration()
115                                        );
116                }
117                $array = array(
118                                'id' => $this->id,
119                                'gender' => $this->gender,
120                                'segments' => $segments
121                                );
122                return json_encode($array);
123        }
124       
125        public function getSegments() {
126                return $this->segments;
127        }
128
129} // end of voxilabSpeaker
130?>
Note: See TracBrowser for help on using the repository browser.