A fluid flow meter comprising: an ultrasonic sensor including a first ultrasonic transducer capable of transmitting a transmit signal to propagate, at least partially, through a fluid in a pipe and a second ultrasonic transducer capable of receiving a respective receive signal; a memory storing computer code instructions and a plurality of pipe type signatures associated with a plurality of pipe types, each pipe type signature of a respective pipe type of the plurality of pipe types including one or more characteristics of receive signals associated with that pipe type; and a processor, communicatively coupled to the ultrasonic sensor and to the memory, configured to, when executing the computer code instructions: compute, using the received signal, a relative energy parameter indicative of either a relative pipe signal energy of a pipe signal or a relative fluid signal energy of a fluid signal, the pipe signal representing a first portion of the receive signal corresponding to a respective first portion of the transmit signal propagating substantially on, or within, a wall of the pipe between the first ultrasonic transducer and the second ultrasonic transducer, and the fluid signal representing a second portion of the receive signal corresponding to a respective second portion of the transmit signal propagating substantially through the fluid in the pipe between the first ultrasonic transducer and the second ultrasonic transducer; determine a first time instance at which a first specific fraction of an energy of the pipe signal is received at the second ultrasonic transducer; determine a second time instance at which a second specific fraction of an energy of the fluid signal is received at the second ultrasonic transducer; and identify a pipe type of the pipe using the relative energy parameter, the first time instance, the second time instance, and a classifier defined based on the plurality of pipe type signatures. an ultrasonic sensor including a first ultrasonic transducer capable of transmitting a transmit signal to propagate, at least partially, through a fluid in a pipe and a second ultrasonic transducer capable of receiving a respective receive signal; a memory storing computer code instructions and a plurality of pipe type signatures associated with a plurality of pipe types, each pipe type signature of a respective pipe type of the plurality of pipe types including one or more characteristics of receive signals associated with that pipe type; and a processor, communicatively coupled to the ultrasonic sensor and to the memory, configured to, when executing the computer code instructions: compute, using the received signal, a relative energy parameter indicative of either a relative pipe signal energy of a pipe signal or a relative fluid signal energy of a fluid signal, the pipe signal representing a first portion of the receive signal corresponding to a respective first portion of the transmit signal propagating substantially on, or within, a wall of the pipe between the first ultrasonic transducer and the second ultrasonic transducer, and the fluid signal representing a second portion of the receive signal corresponding to a respective second portion of the transmit signal propagating substantially through the fluid in the pipe between the first ultrasonic transducer and the second ultrasonic transducer; determine a first time instance at which a first specific fraction of an energy of the pipe signal is received at the second ultrasonic transducer; determine a second time instance at which a second specific fraction of an energy of the fluid signal is received at the second ultrasonic transducer; and identify a pipe type of the pipe using the relative energy parameter, the first time instance, the second time instance, and a classifier defined based on the plurality of pipe type signatures. compute, using the received signal, a relative energy parameter indicative of either a relative pipe signal energy of a pipe signal or a relative fluid signal energy of a fluid signal, the pipe signal representing a first portion of the receive signal corresponding to a respective first portion of the transmit signal propagating substantially on, or within, a wall of the pipe between the first ultrasonic transducer and the second ultrasonic transducer, and the fluid signal representing a second portion of the receive signal corresponding to a respective second portion of the transmit signal propagating substantially through the fluid in the pipe between the first ultrasonic transducer and the second ultrasonic transducer; determine a first time instance at which a first specific fraction of an energy of the pipe signal is received at the second ultrasonic transducer; determine a second time instance at which a second specific fraction of an energy of the fluid signal is received at the second ultrasonic transducer; and identify a pipe type of the pipe using the relative energy parameter, the first time instance, the second time instance, and a classifier defined based on the plurality of pipe type signatures.