Metaheurística II

Ninguna aplicación está libre de bugs.

Siempre se puede, a posteriori, alterar algún requerimiento funcional del sistema. Y listo, he allí un bug. Por cierto, al cliente no le importan las precisiones sobre bug, fault, failure, ni los estándares del IEEE al respecto. Esta referencia al cliente nos permite continuar de inmediato hacia la Metaheurística III.

Palabreo de la Loca Luz Caraballo

Autor: Andrés Eloy Blanco (Incluido en La juanbimbada, 1960)

Los deditos de tus manos,
los deditos de tus pies:
uno, dos, tres, cuatro, cinco,
seis, siete, ocho, nueve, diez.
(Anónimo venezolano)

De Chachopo a Apartadero
caminas, Luz Caraballo,
con violeticas de mayo,
con carneritos de enero;
inviernos del ventisquero,
farallón de los veranos,
con fríos cordilleranos,
con riscos y ajetreos,
se te van poniendo feos
los deditos de tus manos.

La cumbre te circunscribe
al solo aliento del nombre,
lo que te queda del hombre
que quién sabe dónde vive;
cinco años que no te escribe,
diez años que no lo ves,
y entre golpes y traspiés,
persiguiendo tus ovejos,
se te van poniendo viejos
los deditos de tus pies.

El hambre lleva en sus cachos
algodón de tus corderos,
tu ilusión cuenta sombreros
mientras tú cuentas muchachos;
una hembra y cuatro machos,
subida, bajada y brinco,
y cuando pide tu ahínco
frailejón para olvidarte,
la angustia se te reparte:
uno, dos, tres, cuatro, cinco.

Tu hija está en un serrallo,
dos hijos se te murieron,
los otros dos se te fueron
detrás de un hombre a caballo.
«La Loca Luz Caraballo»
dice el decreto del Juez,
sin hijos y sin carneros,
contandito los luceros:
…seis, siete, ocho, nueve, diez…


Notas de Alejandro: Éste es el poema al que me referí en mi post previo sobre Mérida. Andrés Eloy Blanco (6 de agosto de 1897, Cumaná, Venezuela – 21 de mayo de 1955, México D.F., México) es una de las figuras más importantes de la literatura y la política venezolana. El “Palabreo de la Loca Luz Caraballo” lo escribió durante su confinamiento forzado en Timotes (población del estado Mérida, Venezuela), durante la dictadura de Juan Vicente Gómez. Chachopo y Apartadero (Apartaderos, San Isidro de Apartaderos) son otras dos poblaciones del estado Mérida, al igual que Timotes pertenecientes a la geografía del páramo. El frailejón, precisamente, es una planta típica de la zona. En los versos “los otros dos se te fueron / detrás de un hombre a caballo” hay una referencia a Simón Bolívar, concretamente, al paso del Libertador por Los Andes.

Akiresu to kame (アキレスと亀)

Akiresu to kame

De Takeshi Kitano. 2008. Autoreferencial. Autobiográfica. Exagerada. Muy exagerada. Tan exagerada que muchas situaciones macabras resultan graciosas. Excelente película. Con ella pensé sobre el arte, la subjetividad, la crítica, las metas. Pero sobre todo, me hizo pensar que a veces nos dedicamos a “correr detrás de tortugas”, tonta e infructuosamente. Me encantó.

coLinux, int 80 on Windows and other rants

Generally speaking, an Application Binary Interface (ABI) is the interface between an application program and the operating system. Conceptually, it’s related to the more well-known API concept. But ABIs are a low-level notion, while APIs are more leaned toward the application source code level.

Recently, a friend sent me an email exposing some problems he faced when trying to assemble on Cygwin a code originally targeted at Linux. The problem, as he stated, was that int 0x80 didn’t perform as expected. Well, plenty of explanations are pertinent:

Cygwin

Cygwin allows to run a collection of Unix tools on Windows, including the GNU development toolchain. However, at its core, cygwin is a library which translates the POSIX system call API into the pertinent Win32 system calls (system calls are often abbreviated as syscalls). Therefore, cygwin is a software layer between applications using POSIX system calls and the Win32 operating systems, which allows porting some Unix applications to Windows. This way you can, for instance, have the Apache daemon working as a Windows service. Other very attractive feature of Cygwin is its interactive environment: you can run your shell quite nicely, and run your Autoconf scripts, for example. However, porting means recompiling. There is no binary compatibility, and your program cannot run in computers without Cygwin (without CYGWIN1.DLL, more precisely). Furthermore, albeit some progress has been made, Cygwin is relatively slow (it’s a POSIX compatibility layer, after all.) If possible, I prefer to recompile my applications directly with MinGW. For me, this allows for a faster development cycle. Note, though, that Cygwin can compile MinGW-compatible executables. It’s just that, as aforesaid, I prefer to work with MinGW directly. I only work on Windows if I have to develop applications for Windows. But Linux’s development tools are the best, and we can access several of them by using MinGW. I think that Cygwin is best suited for general cross-development and for handling complicated software porting.

System Calls and int 0x80

A system call is a request by an active process for a service performed by the operating system kernel. Remember that a process is an executing (running) instance of a program, and the active process is the process currently using the CPU. The active process may perform a system call to request creation of other process, for instance. Or perhaps the process needs to communicate with a peripheral device. In Linux on x86, int 0x80 is the assembly language instruction that is used to invoke system calls. int 0x80 is a software interrupt, as it will be raised by a software process, not by hardware devices. Before invoking such interruption, our program has to store the system call number (which allows the operating system to know what service your program is specifically requesting ) in the proper register of the CPU. Every interrupt is a signal to the operating system, notifying it about the occurrence of an event that must be computationally handled.

Continue reading “coLinux, int 80 on Windows and other rants”

La Couturière

La Couturière

Ceci est un post que je voulais écrire il y a quelques semaines mais comme je l’ai déjà dit dans un précédent article, j’étais occupé. Je avais auparavant écrit sur mon fixation de trouver le contexte auquel il appartenait cette image d’une femme à coudre. Plus spécifiquement, je me demandais si elle appartenait à un contexte littéraire, ou était une représentation d’un événement historique. Ensuite, je tiens à remercier la dame de Les Zinzins des Cartes d’avoir eu la gentillesse de m’accorder un explication: c’est tout simplement une carte mémoire du jour de Sainte Anne, qui est célébrée le 26 Juillet. Anne, comme Thérèse et la Vierge Marie, est célébré en France et partout dans le monde catholique, et la carte postale est un type de cartes postales vintage publié à l’occasion de cette journée. Alors, simple et résolu.

Calvin & Hobbes

Calvin & Hobbes
Calvin, Hobbes and the peace of life

This is my favorite comic ever. Authored by the genius of Bill Waterson, Calvin & Hobbes was syndicated for a decade to newspapers worldwide. As it’s often the case for bright minds, Mr. Waterson is not without his mysteries and the strength of his beliefs. For instance, he has never authorized any merchandise based on the characters and settings of Calvin & Hobbes, feeling that such commercial overexposure would downgrade the essence of the story and its characters. He also believes that there is no “high art” or “low art”, just art. Anyway, I love his work. I’m very fond of stories which, albeit seemingly targeted at younger audiences, have a deep philosophical and critical background (e.g., Phineas and Ferb). Summarizing, Calvin & Hobbes is an artistic masterpiece. Don’t miss it.

On Wishes and Happiness

I’d also love a big sunny field, Hobbes 🙂

Articulatory Speech Synthesis

Solution to the inverse problem is interesting, among other reasons, for the reduction of memory space and bandwidth requirements for storage and transmission of speech signals.

Today, we’ll temporarily move away from assembly programming. It’s time to discuss a theme that I like a lot: articulatory speech synthesis. Simply put, speech synthesis comprises all the processes of production of synthetic speech signals. Currently, the most popular method for such task is the concatenative approach, which yields synthetic speech output by combining pre-recorded speech segments. Such segments, recorded from human speakers, are collected into a large database, or corpus which is segmented based on phonological features of a language, e.g., transitions from one phoneme to at least one other phoneme. A phoneme is the smallest posited structural unit that distinguishes meaning. It’s important to point out that phonemes are not the physical segments themselves, but, in theoretical terms, cognitive abstractions or categorizations of them. In turn, physical segments, referred to as phones, constitute the instances of phonemes in the actual utterances. For example, the words “madder” and “matter” obviously are composed of distinct phonemes; however, in american english, both words are pronounced almost identically, which means that their phones are the same, or at least very close in the acoustic domain.

On the other hand, articulatory synthesis produces a complete synthetic output, typically based on mathematical models of the structures (lips, teeth, tongue, glottis, and velum, for instance) and processes (transit of airflow along the supraglottal cavities, for instance) of speech. Technically, articulatory speech synthesis transforms a vector p(t) of anatomic or physiologic parameters into a speech signal Sv with predefined acoustic properties. For example, p(t) may include hyoid and tongue body position, protrusion and opening of lips, area of the velopharyngeal port, and so on. This way, an articulatory synthesizer ArtS maps the articulatory domain (from which p(t) is drawn) into the acoustic domain (where frequency properties of Sv lie). Computing the acoustic properties of Sv is the task of a special function. Now, using these definitions, the speech inverse problem is stated as an optimization problem, in which we try to find the best p(t) to minimize the acoustic distance between Sv and the output of ArtS.

The solution to the inverse problem is interesting for the following applications:

  1. Reduction of memory space and bandwidth requirements for storage and transmission of speech signals.
  2. Low cost and noninvasive comprehension and recollection of data on phonatory processes.
  3. Speech recognition, by means of transition to the articulatory domain, where signals may be characterized by fewer parameters.
  4. Retrieving the best parameters for synthesis of high-quality speech signals.

However, because mapping between articulatory and acoustic domains is nonlinear and many-to-one, definition and achievement of acceptable solutions to the inverse problem are not trivial issues. Globally, qualifying a candidate solution follows some type of relation on the acoustical domain. Furthermore, from the family of solutions to the problem, we are frequently interested only in those configurations consistent to descriptions of articulatory phonetics. Several groups have approached this problem. For example, Yehia and Itakura adopted an approach based on geometric representations of the articulatory space, including spatial constraints. Dusan and Deng used analytical methods to recover the vocal tract configurations. Sondhi and Schroeter relied on a codebook technique. Genetic algorithms have also been used, albeit the approach and type of signals studied differ to those used in this research. These later studies mainly investigate relations between articulation and perception on the basis of the tasks of the task dynamic description of inputs to a synthesizer. More recent research recur to control points experimentally measured to a group of speakers, and inversion minimizes the distance between the articulatory model and the referred points, by using quadratic approximations. On our side, we have previously investigated the application of computational intelligence techniques to the speech inverse problem. Concretely, fuzzy rules for modeling the tongue kinematics, neural networks to generate the glottal airflow and genetic algorithms to carry out the overall optimization process. Another novelty of our previous research was the use of the five spanish vowels as target phonemes for inversion.

Synthesis Models

In a broader level, ArtS integrates two models: the articulatory and the acoustic model. An articulatory model represents the essential components for speech production, and its main purpose is computation of the area function A(x, t), which reflects the variation in cross-sectional area of the acoustic tube whose boundaries are located at the glottis and the mouth, respectively. Here, transitions between phonemes are not researched, and thereby the time variable will be dropped from the area function and from the vector p. On its side, an acoustic model specify the transformations between A(x) and the acoustic domain. Naturally, such mapping also requires information about the energy source exciting the tract. According to the acoustic theory of speech production, the target phonemes are considered as the output of a filter characterized by A(x) and excited by a periodic glottal signal.

In this post, we’ll restrict our presentation to the Articulatory Model:

Articulatory Model

Continue reading “Articulatory Speech Synthesis”

Gracias por el Fuego

Mario Benedetti
Mario Benedetti

pero aquí abajo abajo
cerca de las raíces es donde la memoria
ningún recuerdo omite
y hay quienes se desmueren
y hay quienes se desviven
y así entre todos logran
lo que era un imposible
que todo el mundo sepa
que el Sur también existe.

(última estrofa del poema “El Sur también existe”, de Mario Benedetti)

Nació en Paso de los Toros el 14 de Septiembre de 1920, por lo que hoy estaría cumpliendo 90 años (por cierto, su nombre completo es “Mario Orlando Hamlet Hardy Brenno Benedetti Farrugia”). Mago creador de varias de las páginas más brillantes de la literatura universal, como su cuento Esa Boca, uno de mis favoritos de siempre. Muchísimas gracias por el fuego.

The boy is back in town

El muchacho tenía varios días sin escribir aquí. Estaba de viaje.  El mundo es un lugar maravilloso, a pesar de los telediarios. Pero al regresar, como suele suceder, se encuentra uno con multitud de compromisos, perfectamente apilados, expectantes y urgentes. Hoy, justamente, he cumplido con el más perentorio de dichos compromisos, por lo cual me concedo una pequeña licencia para pasar por aquí. Algunas novedades:

  • Hace algunos días recibí las notificaciones de aceptación para unos cuentos míos: “Un lunes cualquiera” y “Una Jaula” aparecerán en los venideros ejemplares de las revistas Narrativas y Mandeb, respectivamente.
  • Aquí en mi casa, curioseando en un estante relativamente olvidado encontré dos LP fantásticos, uno de Raphael y otro de Nino Bravo. Los adquirió mi mamá hace muchos años, y después de cumplir con su propósito de divertimento en aquellas décadas, los discos habían quedado relegados al polvo. La música de estos dos artistas españoles me fascina, así que le dedicaré un post a estos discos en cuanto tenga más tiempo.
  • Hablando de discos… el “manolenta” Eric Clapton ha publicado un sensacional disco de blues. Su interpretación de Autumn Leaves es magistral.
  • Las esperas de los aeropuertos me han servido para escribir poesía. O mejor dicho, para transformar chispazos de lucidez en versos sueltos. Pero aún falta la amalgama que convierta en poemas esos botes a la deriva.
  • Hace rato que llueve abundantemente en varias partes de Venezuela.
  • En Margarita, este 8 de Septiembre, se celebró el día de la Patrona de Oriente, la Virgen del Valle. Mi pueblo, su gente, su fe.
  • Uuuuhhh… El Barcelona perdió con el Hércules 2-0 en el Camp Nou. No me esperaba eso. Pero gloria al vencedor y honor al vencido. Me gustó el despliegue del equipo de Alicante.
  • Tampoco he tenido tiempo para pasar por mis blogs favoritos. Y hay muchos correos electrónicos que aún debo contestar. Y hay muchas amistades que debo visitar. Todo con calma.