He hecho esto:
me@riverbrain:~/sgf$ echo "test" | text2wave -otype raw -F 16000 >> test.raw
que produjo un archivo de audio sin encabezado. Lo maravilloso de este archivo es que se puede concatenar (usando cat
, como texto) con otro archivo de audio sin formato.
Por supuesto que tengo un problema. El problema es que todavía no puedo jugarlo.
me@riverbrain:~/sgf$ play test.raw
play FAIL formats: bad input format for file `test.raw': sampling rate was not specified
y también, al especificar la frecuencia de muestreo
me@riverbrain:~/sgf$ play -r 16000 test.raw
play FAIL formats: bad input format for file `test.raw': data encoding was not specified
Cuando busqué 'codificación' de información tuve la sensación de que tenía mucho que ver con la arquitectura de su procesador, pero tal vez me equivoque. De todos modos, no puedo encontrar ninguna documentación sobre cómo 'preguntar' a la computadora cuál es la codificación de datos del archivo de audio sin formato. Y también sé cuál es la frecuencia de muestreo, debido a que lo configuré yo mismo, pero eso es todo lo que puedo obtener.
Respuestas:
Puede variar, pero al menos para mí, text2wave produce PCM entero de 1 canal y 16 bits con signo. Estos son bastante normales, y quedará muy claro cuando los tenga en su lugar (p. Ej., Si por error enteras sin firmar, obtendrás un sonido extremadamente distorsionado)
Con el juego, se ve así:
Sospecho que estos parámetros están configurados en algún lugar del Festival. Algunos de ellos también pueden estar codificados.
La única cosa dependiente de la arquitectura que puede encontrar es grande versus pequeño endian; en mi máquina little-endian Festival está escribiendo little-endian; si moviera ese archivo a una máquina big endian, probablemente necesite agregarlo
-L
. Sitext2wav
se ejecutara en una máquina big endian, no estoy seguro de si escribiría datos big o little endian.fuente
Probablemente pueda crear su propio encabezado RIFF. Un poco de golpe debería hacerlo ... y simplemente conecta el encabezado a tu (s) otra (s) pieza (s) ...
Este enlace muestra el diseño del encabezado: el formato de archivo Canonical WAVE
También hay un enlace relacionado en SO: convertir datos de audio RAW a WAV con scripting , pero las respuestas de mplayer / mencoder tienen un recuento marcado cero. Sin embargo, parece que SoX funciona.
SoX recibe una mención en los dos enlaces anteriores y está disponible en el repositorio de Ubuntu; Supongo que también está en otros.
PD ... ¡Intenté usarlo
play
(no sabía que existía) y descubrí que es SoX! ... El enlace SO da un ejemplo, copiado aquí:sox -r 44100 -e unsigned -b 8 -c 1 <RAW_FILE> <TARGET_FILE>
Si no puede hacerlo funcionar con sox , tal vez mplayer / mencoder o el encabezado RIFF lo harán funcionar por usted.
fuente
Use en
aplay
lugar deplay
reproducir un archivo sin formato, de esta manera puede especificar que es un audio sin formato con el modificador -t:fuente