es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Fallo en el comando Open (IN…) posiblemente debido a problemas con la denominación.

Nuevo en Perl y bastante nuevo en programación en general, así que disculpen si esto está formateado terriblemente y es una pregunta fácil. Estoy tratando simplemente de ingresar el código de otra persona como un paso en un proyecto más grande que implica PRAAT. El código está diseñado para distinguir los ritmos del habla, he seguido su nomenclatura en la nomenclatura de archivos (en la línea 2), pero el código no avanza más allá de la línea 13. ¿Podría alguien decirme por qué? ¿Está intentando abrir un directorio llamado “intensities”? Además, ¿hay algún otro lugar donde pueda tener que cambiar el código, posiblemente sea bastante antiguo? ¡Muchas gracias!

“`
!/usr/local/bin/perl -w

scalar(@ARGV) == 1 or scalar(@ARGV) == 2 or die "Uso: getBeatsOneShot.pl someSoundFile <threshold>";
$stem = shift;

Parámetros para ajustar

if (scalar(@ARGV) == 0) {
$threshold = 0.2;
} else {
$threshold = shift;
print "Umbral es $threshold\n";
}

open(IN, "intensities/$stem.intensity") or die "mal";
open(OUT, ">beats/$stem.beats") or die "eek";

Tipo de archivo = "ooTextFile short"

$_ = <in>; print OUT $_;

reemplazar "Intensidad" con "TextGrid"

$_ = <in>; print OUT "\"TextGrid\"\n\n";

saltar una línea

$_ = <in>;

chomp($xmin = <in>);
chomp($xmax = <in>);
chomp($nx = <in>); $nx = 0; #(solo suprimir una advertencia aquí)
chomp($dx = <in>);
chomp($x1 = <in>);

Leer contorno de intensidad en @e (envolvente)

@e = ();
while($_ = <in>) { chomp; last unless $_ eq "1"; }
push @e, $_;

while($_ = <in>) {
chomp($em);
push @e, $em;
}

(1) Encontrar máximo y mínimo

$max = 0; $min = 1000000;
foreach $ival (@e) {
if($ival > $max) {
$max = $ival;
}
if($ival < $min) {
$min = $ival;
}
}

(2) buscar beats

@beats = ();

print "Umbral: $threshold\n"
“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    El código está diseñado para distinguir los ritmos de habla. El error ocurre en la línea 13, que intenta abrir un archivo llamado “intensities/$stem.intensity”. Parece que está intentando abrir un archivo en un subdirectorio llamado “intensities” con el nombre “$stem.intensity”. Si este directorio o archivo no existe, devolverá un mensaje de error “badly”. El script también intenta escribir en un archivo llamado “beats/$stem.beats”.

    Es posible que el script necesite algunos cambios adicionales, ya que es un script antiguo. Sin embargo, sin información adicional sobre los errores específicos o problemas que puedan estar surgiendo, es difícil decirlo con certeza.

Comments are closed.