       nil -> "no_function"
     end
     meta_map = Map.new(meta)
+    maybe_espeak(message, Map.get(meta_map, :channels, []), state.espeak)
     log = struct(Farmbot.Log, [
       time: time,
       level: level,

    for b <- backends do
      Elixir.Logger.add_backend(b, [])
    end
    {:producer, %{}, dispatcher: GenStage.BroadcastDispatcher}
  end

  def handle_demand(_, state) do

      Elixir.Logger.remove_backend(b, [])
    end
  end

  defp maybe_espeak(_message, _channels, nil), do: :ok
  defp maybe_espeak(message, channels, exe) do
    if :espeak in channels do
      spawn System, :cmd, [exe, [message]]
    end
    :ok
  end
end
