blob: 82ae6451d0d8ed11d9c0b512125e8c92fad57c89 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
/*
$Log$
Revision 1.12 2000/01/05 08:20:39 markster
Version 0.2.0 from FTP
Revision 1.2 2000/01/05 08:20:39 markster
Some OSS fixes and a few lpc changes to make it actually work
* Revision 1.1 1996/08/19 22:32:17 jaf
* Initial revision
*
*/
#ifdef P_R_O_T_O_T_Y_P_E_S
extern int energy_(integer *len, real *speech, real *rms);
#endif
/* -- translated by f2c (version 19951025).
You must link the resulting object file with the libraries:
-lf2c -lm (in that order)
*/
#include "f2c.h"
/* ********************************************************************* */
/* ENERGY Version 50 */
/* $Log$
* Revision 1.12 2000/01/05 08:20:39 markster
* Version 0.2.0 from FTP
*
/* Revision 1.2 2000/01/05 08:20:39 markster
/* Some OSS fixes and a few lpc changes to make it actually work
/*
* Revision 1.1 1996/08/19 22:32:17 jaf
* Initial revision
* */
/* Revision 1.3 1996/03/18 21:17:41 jaf */
/* Just added a few comments about which array indices of the arguments */
/* are used, and mentioning that this subroutine has no local state. */
/* Revision 1.2 1996/03/13 16:46:02 jaf */
/* Comments added explaining that none of the local variables of this */
/* subroutine need to be saved from one invocation to the next. */
/* Revision 1.1 1996/02/07 14:45:40 jaf */
/* Initial revision */
/* ********************************************************************* */
/* Compute RMS energy. */
/* Input: */
/* LEN - Length of speech buffer */
/* SPEECH - Speech buffer */
/* Indices 1 through LEN read. */
/* Output: */
/* RMS - Root Mean Square energy */
/* This subroutine has no local state. */
/* Subroutine */ int energy_(integer *len, real *speech, real *rms)
{
/* System generated locals */
integer i__1;
/* Builtin functions */
double sqrt(doublereal);
/* Local variables */
integer i__;
/* Arguments */
/* Local variables that need not be saved */
/* Parameter adjustments */
--speech;
/* Function Body */
*rms = 0.f;
i__1 = *len;
for (i__ = 1; i__ <= i__1; ++i__) {
*rms += speech[i__] * speech[i__];
}
*rms = sqrt(*rms / *len);
return 0;
} /* energy_ */
|